在SQL触发器更新触发器期间,有没有一种简单的方法可以获取整个预期结果表(即触发器执行后表会是什么样子?)
这是我唯一能想到的(归结为表减去已删除的表+插入的表):
SELECT *
FROM TheTable t
WHERE
NOT EXISTS
(
SELECT 1
FROM DELETED d
WHERE
d.primaryKey1 = t.primaryKey1
AND d.primaryKey2 = t.primaryKey2
-- ...
)
UNION ALL
SELECT *
FROM INSERTED
更新:
上面的内容在 FOR/AFTER 触发器内部不必要地复杂。只需查询表本身就足够了。 (感谢 @usr 的叫醒服务。)但是,对于替代触发器,您将执行类似的操作来获取结果表,尽管您可能实际上希望在执行期间构建该表。
最佳答案
使用 AFTER
触发器查看最终状态的表。
关于sql-server - SQL更新触发期间的预期结果表是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274309/