在 T-SQL 中进行更新时向用户显示结果之前和之后

Show user before and after results when doing an update in T-SQL

我有一个 T-SQL 脚本,在这个脚本中我执行了几个典型的更新:

UPDATE TABLE1 SET column01 = value01, column02 = value02, ..., columnN = valueN;

UPDATE TABLE2 SET column01 = value01, column02 = value02, ..., columnN = valueN;

UPDATE TABLE3 SET column01 = value01, column02 = value02, ..., columnN = valueN;

所以我想对于上面的每个 table 更新,向用户显示更新前后的值,即向用户显示一个包含两行的 table 结果,第一行对应更新前的值和第二个对应更新后的值。

那么怎么做呢?

您可以使用 inserteddeleted table 来获取之前和之后的状态,如下所示:

UPDATE TABLE1 SET column01 = value01, column02 = value02, ..., columnN = valueN;
OUTPUT
deleted.*, inserted.*;

您可以将 OUTPUT 子句的结果写入临时 table 或 table 变量,然后 select 来自源和目标的列 table 使用 union all 作为 2 行,如演示中所示。

Demo