OUTPUT 子句 可以在數據進行增刪改的時候,可以返回受影響的行。先準備一張表 1、insert ,影響行在inserted表裡 返回結果: id name 1 a 批量插入: id name 2 b 2、delete ,影響行在deleted表裡 返回結果: id 1 3、update,會將新數 ...
OUTPUT 子句
可以在數據進行增刪改的時候,可以返回受影響的行。先準備一張表
create table #t ( id int identity primary key ,name varchar(100) ) go
1、insert ,影響行在inserted表裡
insert into #t(name) output inserted.* values('a')
返回結果:
id name
----------- ----------------------------------------------------------------------------------------------------
1 a
批量插入:
insert into #t output inserted.* select 'b'
id name
----------- ----------------------------------------------------------------------------------------------------
2 b
2、delete ,影響行在deleted表裡
delete from #t output deleted.id where id = 1
返回結果:
id
-----------
1
3、update,會將新數據放在inserted表裡,老數據放在deleted表裡
update #t set name='new value' OUTPUT deleted.id,deleted.name,inserted.id,inserted.name where id=2
id name id name
----------- ---------------------------------------------------------------------------------------------------- ----------- ----------------------------------------------------------------------------------------------------
2 d 2 new value
(1 row(s) affected)
4、OUTPUT INTO 支持將數據 插入到表裡
DECLARE @outputTable TABLE(name1 varchar(100),name2 varchar(100)) update #t set name='new value 3' OUTPUT deleted.name,inserted.name into @outputTable where id=2 SELECT * FROM @outputTable
(1 row(s) affected)
name1 name2
---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
new value new value 3
(1 row(s) affected)
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms177564(v%3dsql.90)