以上是表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

结果是:

  

SQL OUTPUT 语句的用法_删除行

  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
  


SQL OUTPUT 语句的用法_删除行_02

 

 同理以上也可使用会 output into语句将被删除的信息插入到一个新表中


 C. 将 OUTPUT  用于 UPDATE

 以下实例将在表中更新数据是使用output 返回修改前的数据和修改后的数据

update soloreztest   set name='zz' output  inserted.name,deleted.name where id=3

  

SQL OUTPUT 语句的用法_st表_03


inserted.name:表示的是在 soloreztest表中更新后的数据内容。

deleted.name :表示的是在soloreztest表中的更新前的数据内容。