【发布时间】:2015-09-21 08:17:47
【问题描述】:
我需要比较同一张表的两行(INSERTED & DELETED)并比较值。然后我需要获取不匹配的列。在触发器内部。
到目前为止我已经尝试过,但我不知道如何比较这两行并获取包含不同值的列名。
SELECT *
FROM inserted i
INNER JOIN deleted d ON d.PurchasingDocItemNo = i.PurchasingDocItemNo
AND d.PurchasingDocNo = i.PurchasingDocNo
AND d.ReferenceDocumentNo = i.ReferenceDocumentNo
AND d.ProductNo = i.ProductNo
【问题讨论】:
-
您可以在其他可能不同的字段中添加 WHERE 条件,或者使用 Sql Server CdC 或更改跟踪
-
那么,您正在寻找一种方法来获取更新语句更改的列的名称?阅读
columns_updated。示例here 和there。
标签: sql sql-server tsql triggers