sql 获取成功更新后的数据

 

sql

使用inserted获取更新受影响行

DECLARE @tempGroup table (FirstName VARCHAR(50),Address VARCHAR(100),City VARCHAR(50))
UPDATE Persons SET City='CHENGDU' 
OUTPUT inserted.LastName,inserted.Address,inserted.City INTO @tempGroup
WHERE FirstName='Thomas'
SELECT * FROM  @tempGroup

结果:

 

 

使用deleted获取更新受影响行

DECLARE @tempGroup table (FirstName VARCHAR(50),Address VARCHAR(100),City VARCHAR(50))
UPDATE Persons SET City='CHENGDU' 
OUTPUT deleted.LastName,deleted.Address,deleted.City INTO @tempGroup
WHERE FirstName='Thomas'
SELECT * FROM  @tempGroup

结果:

 

 

关于inserteddeleted

deleted表:用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。

inserted表:用于存储INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。

增加操作(Insert)

inserted表增加数据,deleted表无数据

删除操作(Delete)

inserted表无数据,deleted表增加数据

修改操作(Update)

inserted表增加数据(新数据),deleted表增加数据(旧数据),从以上例子中的City列可以看出deleted表存储的是修改前的旧数据,inserted表存储的是修改后的新数据

参考

 

posted @ 2025-06-23 11:21  流年sugar  阅读(51)  评论(0)    收藏  举报