(1.4)DML增强功能-Output

时间:2023-11-12 09:48:44

Output在CRUD的区别

1.对于INSERT,可以引用inserted表以查询新行的属性.在insert into table output .

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

3.对于UPDATE,使用deleted表查询被更新行在更改前的属性,用inserted表标识被更新行在更改后的值.  update table set c1= 1 output.

输出方式:

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

2.输出给表

3.两者皆可.

 示例

1.insert

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

基本形式演示图:

  (1.4)DML增强功能-Output

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

输入形式演示图:

  (1.4)DML增强功能-Output

  如图可见,把新增的两行插入到test1033表中去了

2.delete

  

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

  (1.4)DML增强功能-Output

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

3.update

  

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

  演示如图

  (1.4)DML增强功能-Output

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

  

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

(1.4)DML增强功能-Output