以上是表soloreztest的原始内容使用output子句对其进行操作
A. 将 OUTPUT INTO 用于简单 INSERT 语句
以下示例将行插入soloreztest表,并使用 OUTPUT
子句将语句的结果返回到 @mytable
table 变量中
declare @mytable table
(
id int identity(1,1) primary key,
name varchar(50)
)
insert into soloreztest output inserted.name into @mytable values('147')
select * from soloreztest
select * from @mytable
结果是:
output into子句是将向soloreztest表里面的数据同步的插入的@mytable的表变量里面
output 子句则只是用于显示被改变的数据INSERTED 或 DELETED 前缀
inserted 前缀:用于检索新插入表中或是更新后的数据的数据 可用与insert和update语句中不能在delete语句中出现
deleted 前缀: 用于检索被删除或是更新前的数据 可用与delete和update语句中不能在insert 语句中出现
B. 将 OUTPUT 用于 DELETE 语句
以下实例是将在表中soloreztest删除行是放回被删除行的信息
delete soloreztest output deleted.* where id=2
同理以上也可使用会 output into语句将被删除的信息插入到一个新表中
C. 将 OUTPUT 用于 UPDATE
以下实例将在表中更新数据是使用output 返回修改前的数据和修改后的数据
update soloreztest set name='zz' output inserted.name,deleted.name where id=3
inserted.name:表示的是在 soloreztest表中更新后的数据内容。
deleted.name :表示的是在soloreztest表中的更新前的数据内容。