2005 中output 用法

output 用于记录insert 、update 、delete 动作的记录变化情况

------------------------------------------------------------------------

 

--> 测试数据: @tb
declare @tb table (id int,name varchar(20))
insert into @tb
select 1,'a' union all
select 2,'b'

--> 测试表: @tt
declare @tt table (new_id int,old_id int)


-----------------------------------
--
------>SQL 2005
--
---------------------------------
--
1、插入
insert @tb 
    output inserted.id
   
into @tt(old_id)
select 3,'c' union all
select 4,'d'

select * from @tt 
/*
new_id      old_id
----------- -----------
NULL        3
NULL        4
*/

---------------------------------------
--
2、删除
delete  @tb
    output deleted.id
   
into @tt (old_id)
where id<=2

select * from @tt 
/*   
new_id      old_id
----------- -----------
NULL        3            ----3和4是上面的 插入产生的
NULL        4
NULL        1
NULL        2
*/

---------------------------------------
--
3、更新
update @tb
set name=name+'WelCome!'
    output inserted.id,
           deleted.id
   
into @tt(new_id,old_id)
where id=4

select * from @tt
/*
new_id      old_id
----------- -----------
NULL        3
NULL        4
NULL        1
NULL        2
4           4
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值