sql server触发器中自动生成的临时表

sql server触发器中,系统自动会生成两张临时表,分别是deleted 和inserted 它们是逻辑(概念)表。也可理解为是临时表。

为方便理解,可以这么来认为Inserted表和Deleted表的作用:Inserted表就是放新的记录,Delete表就是放旧的记录。并且,它们的表结构与原表是完全相同的。

1。当你插入时,要插入的记录是新的,所以可以在Insert表中找到。

如:table1中本来就有N条记录,但执行 insert into table1 value('1') 那么,在table1的sql server触发器的Inserted表中,有且仅有同样一条记录。
select * from Inserted ,结果为: 1 而不是table1的N+1条记录。

2。当你更新时,要更新的记录是新的,所以可以在Inserted表中找到,被更新的记录是旧的,所以可以在Deleted表中找到。

如:有条记录 1 要改为 2
select * from Deleted 的结果为1select * from Inserted 的结果为2

3。当你删除时,要删除的记录是旧的,所以可以在Deleted表中找到。

如:表中有1,2,3,4 四条记录,删除其中三条,则 select * from deleted 的结果为 1,2,3

当对某张表建立sql server触发器后,分3种情况讨论

1.插入操作(Insert)

Inserted表有数据,Deleted表无数据

2.删除操作(Delete)

Inserted表无数据,Deleted表有数据

3.更新操作(Update)

Inserted表有数据(新数据),Deleted表有数据(旧数据)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值