传递另一个表

时间:2017-07-07 14:20:06

标签: sql sql-server database

我正在调用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约束冲突

0 个答案:

没有答案