首页 > 数据库 > mysql教程 > SQLSERVER触发器之临时表

SQLSERVER触发器之临时表

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 15:15:32
原创
1729 人浏览过

SQL 触发器 中,系统自动会生成两张 临时 表,分别是deleted 和 inserted 它们是逻辑(概念)表。也可理解为是 临时 表。 为方便理解,可以这么来认为Inserted表和Deleted表的作用: Inserted表就是放新的记录,Delete表就是放旧的记录。 并且,它们的表结构

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

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

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

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


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

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



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

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

----------------------------------------------硅谷动力上看到的-------------------------

顺便说一下,当对某张表建立触发器后,分3种情况讨论

  1.插入操作(Insert)

  Inserted表有数据,Deleted表无数据

  2.删除操作(Delete)

  Inserted表无数据,Deleted表有数据

  3.更新操作(Update)

  Inserted表有数据(新数据),Deleted表有数据(旧数据)

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
tp6连接sqlserver数据库问题
来自于 1970-01-01 08:00:00
0
0
0
php 怎样调用sqlserver的分页储存过程
来自于 1970-01-01 08:00:00
0
0
0
php 7.2.10 链接 SQLserver2008r2 报错
来自于 1970-01-01 08:00:00
0
0
0
Laravel 中无法连接 SQL Server
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板