sql-server - SQL更新触发期间的预期结果表是什么?

标签 sql-server

在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/

相关文章:

sql - T-SQL 存储过程

sql-server - 如何批量更新具有大量活跃读者的 SQL Server 数据库

sql - 对 varbinary 数据类型 sql server 执行聚合操作

c# - 如何在负载平衡的 Azure 虚拟机上使用 SessionState

c# - 在数据库中插入多条记录的最佳方法

sql-server - 了解气隙网络中的 CREATE CONTRACT

C# SQL 注入(inject)

sql-server - TSQL - 合并两个表

sql-server - 用于流量管理器故障转移的 Sql Azure 数据库镜像

sql - 如何将水平行转换为垂直 SQL Server