我的触发器出现问题,因为我需要从其中一个表中删除行,但是需要将id从该表连接到刚刚插入的数据。
DELETE FROM TransactionTable where ItineraryReferenceNumber =
(select distinct i.ItineraryReferenceNumber from inserted i LEFT JOIN TransactionTable FS
ON i.ItineraryReferenceNumber = FS.ItineraryReferenceNumber)
我需要使用与之匹配的参考号码来获取所有记录,这就是我选择它们的原因。
这是正确的,还是我做错了什么?
答案 0 :(得分:2)
SELECT CustomerID FROM [Customers] where CUSTOMERID NOT IN (SELECT O.CUSTOMERID from Customers c, Orders O where O.CustomerID=c.CustomerID)
请参阅此示例代码,来自this database。 这是同一个查询,就像你一样,这将返回没有订单的客户的ID。 你可以使用它,你删除这样的ItineraryReferenceNumber,它匹配另一个表的某些标准。
答案 1 :(得分:1)
您生效,只是删除inserted
表中的TransactionTable中的记录。
DELETE FROM TransactionTable
WHERE ItineraryReferenceNumber IN (
SELECT ItineraryReferenceNumber FROM inserted
)