我想删除具有相同订单号的记录。 例如,如果我有10个具有相同订货号的产品。当我要删除这十个带订货号的行时,会显示这样的错误。
DELETE FROM [NORTHWND].[dbo].[Orders]
WHERE EmployeeID = 5
消息547,级别16,状态0,第22行该DELETE语句冲突 具有REFERENCE约束“ FK_Order_Details_Orders”。冲突 发生在数据库“ NORTHWND”的表“ dbo.Order Details”的列中 “订单ID”。该声明已终止。
答案 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