(4)DML增强功能-Output

Output在CRUD的区别 

1.对于INSERT,可以引用inserted表以查询新行的属性.

2.对于DELETE,可以引用deleted表以查询旧行的属性.

3.对于UPDATE,使用deleted表查询被更新行在更改前的属性,用inserted表标识被更新行在更改后的值.  

输出方式: 

1.可以输出给调用方(客户端应用程序)

2.输出给表

3.两者皆可. 

 示例

1.insert

--基本形式
insert
into test103 output inserted.* values(100,100),(200,200)
--输入形式,注意into后面的表(这里是test1033)必须已经存在,否则会报找不到对象语法错误
insert into test103 output  inserted.* into test1033  values(100,100),(200,200)

基本形式演示图:

  

 如图可见,在insert 中使用output 并不影响insert本来的情况,只是会额外输出新行的数据

输入形式演示图:

  

2.delete

  

--基本形式
delete
test101 output deleted.*
--输入形式,同理也需要test1011存在
delete test101 output deleted.* into test1011

  

  如图,delete 中使用output可以把删除部分的数据输出出来,如果需要保留则可以使用into  backup_table,但是backup_table必须已经存在并且与原表数据结构相同。

3.update 

  

update t1   set id =1 output deleted.*,inserted.*
--deleted为修改前,inserted为修改后

  演示如图

  

4.delete 就不多说了就是一样的

   

--基本形式//输入形式一样 这里就不多说了
delete
t1 output deleted.* from test101 t1

猜你喜欢

转载自www.cnblogs.com/gered/p/9107771.html
DML