我正在调用HttpDelete API,通过存储过程从我的数据库中删除数据。
我有一个名为CustomerQueryData的表,如下所示(为简洁起见,删除了大量列。
CustomerQueryId | CustId | CarId | CustName
1 1 1 Joe
2 2 2 Jane
然后我有一张如下图所示的Car Table(customerquery数据表上的CarId是车牌表的FK)
CarId | CarName
1 BMW
2 Audi
在存储的PROC中,我通过了CustId,我需要删除与该CustId相关的所有数据。如果我尝试使用连接首先根据CustId从CarTable中删除数据,由于FK约束,我不能这样做。如果我首先根据我传入的ID删除CustomerData,它将从该表中删除,但之后我将在CarTable中有一个孤立行,因为我无法根据CustId加入,因为它赢了&# 39; t不再存在于CustomerData表中。
我知道一旦解决方案是关闭约束并从CarTable中删除然后从CustomerData中删除但只是想知道是否有更好的方法我没有想到
所以抛出FK错误的查询是:
DELETE car FROM [MySchema].[Car] car
JOIN MySchema.CustomerQueryData cqd on car.CarId = cqd.CarId
where cqd.CustId = 2
抛出的- DELETE语句与REFERENCE约束冲突