加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver之触发器

发布时间:2020-12-12 13:14:09 所属栏目:MsSql教程 来源:网络整理
导读:????触发器是一个在修改指定表中数据时执行的储存过程。它是一种特殊的存储过程?它不能被显式地调用,而是在往表中插入记录?更新记录或者删除记录时被自动地激活。而储存过程可以通过其名字被直接调用。 一、触发器作用: ????自动执行,他们在表的数据做了

????触发器是一个在修改指定表中数据时执行的储存过程。它是一种特殊的存储过程?它不能被显式地调用,而是在往表中插入记录?更新记录或者删除记录时被自动地激活。而储存过程可以通过其名字被直接调用。

一、触发器作用:

????自动执行,他们在表的数据做了任何修改之后立即激活。

????可以实现复杂的数据库更新操作,可以调用一个或多个存储过程,甚至外部过程完成相应的操作。

????可以实现比check约束更为复杂的数据完整性约束,可以引用其他表的列。

????可以检测数据库内的操作,从而取消未经许可的更新操作,使数据库更新更安全。

????能够对数据库的相关表进行级联更改。

二、种类:

  1. DDL(数据定义语言 Data Definition Language):针对数据库级别的,用于在数据库中执行管理任务。DDL事件即指在表或索引中的create、alter、drop语句。

  2. DML( 数据操纵语言 Data Manipulation Language):DML事件即指在表或视图中修改数据的insert、update、delete语句。

  3. 登录触发器:是指当用户登录SQL SERVER实例建立会话时触发。在登陆验证完成之后且用户会话实际建立之前激发。可以用来审核和控制服务器会话,如:跟踪登录活动、限制登录名和限制登录名的会话数。 ?

三、触发方式:

  1. ?AFTER触发器:它是在执行INSERT、UPDATE、DELETE语句操作之后执行触发器操作。它主要是用于记录变更后的处理或检查,一旦发生错误,可以回滚本次操作,但不能对视图定义AFTER触发器。

  2. INSTEAD OF触发器:它在执行INSERT、UPDATE、DELETE语句操作之前执行触发器本身所定义的操作,并不执行引起触发的操作(insert、update、delete)。而INSTEAD OF触发器是可以定义在视 图上的。 ??

四、触发器有两个特殊的表:

????插入表(instered表)和删除表(deleted表)。这两张是逻辑表也是虚表。是在内存中创建的,不会存储在数据库中,而且都是只读的。这两张表的结果总是与被改触发器应用的表的结构相同。当触发器完成工作后,这两张表就会被删除。Inserted表的数据:即新的记录,是插入或是修改后的数据;deleted表的数据:即旧的记录,是更新前的或是删除的数据。

????一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读