删除具有相同订单号的多个记录

时间:2019-03-19 15:45:58

标签: sql-server

我想删除具有相同订单号的记录。 例如,如果我有10个具有相同订货号的产品。当我要删除这十个带订货号的行时,会显示这样的错误。

DELETE  FROM [NORTHWND].[dbo].[Orders]
WHERE EmployeeID = 5
  

消息547,级别16,状态0,第22行该DELETE语句冲突   具有REFERENCE约束“ FK_Order_Details_Orders”。冲突   发生在数据库“ NORTHWND”的表“ dbo.Order Details”的列中   “订单ID”。该声明已终止。

2 个答案:

答案 0 :(得分:0)

要从“订单”表中删除记录,首先必须从“订单明细”表中删除记录,因为不允许它们引用不存在的记录。

DELETE  FROM [NORTHWND].[dbo].[Order Details]
WHERE OrderID IN (SELECT OrderID FROM [NORTHWND].[dbo].[Order] WHERE EmployeeID = 5)

然后,除非有更多限制,否则您可以继续从“订单”表中删除记录。

DELETE  FROM [NORTHWND].[dbo].[Order]
WHERE EmployeeID = 5

答案 1 :(得分:-1)

无法删除bcoz与表Order_Details(OrderDetails)中的ID有关系

DELETE FROM Order_Details WHERE OrderId IN (SELECT ID FROM Orders WHERE EmployeeId = 5)
DELETE FROM Orders WHERE EmployeeId = 5