重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
SQL SERVER中触发器的触发类型有三种。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都网站制作、涡阳网络推广、重庆小程序开发、涡阳网络营销、涡阳企业策划、涡阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供涡阳建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
1、DML触发器,当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果对该表写了对应的DML触发器,那么该触发器自动执行。
2、DDL触发器,是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。比如在修改表,修改列,新增表,新增列等。它在数据库结构发生变化时执行,主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改。
3、登录触发器,登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。
扩展资料:
DML触发器的主要作用在于强制执行业 务规则,以及扩展Sql Server约束,默认值等。因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。
来自登录触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。
触发器可在写入数据表前,强制检验或转换数据。触发器发生错误时,异动的结果会被撤销。可依照特定的情况,替换异动的指令 (INSTEAD OF)。
for 触发器,执行后触发器
也可以写成:for after 只不过after可写可不写,一般省略掉了
在用户执行数据操作之后,触发器触发,执行触发器代码
如:
表A(ID,age,level)
如果更新age那么level始终是age的两倍
代码如下:
create trigger upAge
on 表A
for update
if update(age)
update 表A set level=a.age*2
from inserted as a where a.ID=表A.ID
还有instead of 执行前触发器
在用户执行数据操作数据之前,触发器触发,执行触发器代码,不执行用户的操作
根据这个特性,instead of 触发器可以为视图添加数据操作的功能
如:
表:
表1(ID,NAME) 表2(ID,DATE)
视图 :
DATA(表1.ID,表1.NAME,表2.DATE)
为DATA视图添加insert操作:代码如下
create triger trgName
on DATA
instead of insert
as
begin
insert into 表1 select ID,NAME from inserted
insert into 表2 select ID,DATE from inserted
end
前触发器:指在执行INSERT,UPDATE,DELETE之前去触发【触发器】要执行的语句
后触发器:指在执行INSERT,UPDATE,DELETE之后再去触发【触发器】要执行的语句。
比如一个update触发器,要执行删除操作。
那么有两种情况,第一先update在delete(后触发器)
第二先delete在update(前触发器)