my sql 触发器_My SQLServer 触发器

【七】触发器

1. 触发器的概念:触发器是一种实施复杂的、完整性约束的特殊存储过程,它在SQL Server中进行某张特定的表修改时由SQL Server自动执行。

l      触发器有两张特殊的表:插入表(Inserted)和删除表(Deleted)

l      Inserted表:存放insert和update语句执行所影响行的副本。即用于插入或更新表的新行值,在插入或更新表的同时,也将其副本存入inserted表中。

l      Deleted表:存放delete或update语句执行所影响行的副本。当执行一条delete语句时,从表中删除的每一行都包含在删除触发器内的delete表中。

*注:inserted 和 deleted表只能由创建他们的触发器引用。

2. 触发器分为:After触发器和Instead of 触发器,触发器可以查询到其他表,还可以包含复杂的T-sql语句

l      After触发器:在触发事件发生后才执行的触发器,也就是说,先执行insert、update、delete等语句然后才执行After触发器,这个值适合于数据表,不适合视图,这是默认的触发器。

l      Instead of 触发器:有时也叫“替代”触发器,这个触发器是在触发事件发生之前执行的 ,即先执行instead of 触发器然后执行insert 、update、delete语句。这类适合数据表,也适合视图。

在创建触发器前,需注一下问题:

l      Create trigger语句必须是批处理中的第一条语句,而且只能是用于一张表或视图。

l      创建触发器的权限默认分配给表的所有者,而且不能将该权限转给其他用户。

l      虽然不能在临时表或系统表上创建触发器,但是触发器可以引用临时表。

创建触发器需要指定一下内容:

l      名称

l      定义触发器表

l      触发器在什么时候被触发

l      激活触发器的数据修改语句,有效选项为inster、update或delete。多条数据修改语句看激活同一个触发器。例如:触发器可以由insert或update语句激活

如何创建触发器?

语法:

CREATE TRIGGER trigger_name

ON {table_name | view_name}

[WITH ENCRYPTION]

FOR [DELETE, INSERT, UPDATE]

AS

T-SQL语句

GO

*各参数的含义:

l      trigger_name:触发器名称

l         WITH ENCRYPTION表示加密触发器定义的SQL文本

lDELETE, INSERT, UPDATE指定触发器的类型

l         Table_name | view_name:是在执行触发器的表或视图名称。

*注:触发器不能创建在临时表上,而且一个触发器只能作用在一张表上

6.创建insert触发器;

7.创建Delete(删除)触发器

8.创建Update(更新)触发器

9.小结

10. instead of触发器的使用

11.使用触发器的优缺点:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值