黑马程序员 SqlServer触发器

原创 2013年12月04日 13:37:59

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------------------------------


触发器的分类
1.DML触发器
(1)after触发器,在执行insert,update,delete语句操作后,执行after触发器,指定after与指定for相同,after触发器只能应用于表。


(2)instead of 触发器。执行instead of触发器,代替通常的触发动作。如可以为视图定义instead of触发器,则这些触发器能够扩展视图可支持的更新类型。
     instead of触发器的主要优点是可以使不能更新的视图支持更新。基于多个表的视图必须使用instead of触发器来支持引用多个表中数据的插入、更新、和删除操作。


(3)CLR触发器。CLR触发器可以是after触发器或instead of触发器。CLR触发器还可以是DDL触发器。CLR触发器将执行在托管代码(在Microsoft.net framework 中创建并在SQL Server中上载的程序集的成员)中编写的方法,而不用执行T-SQL存储过程。


2.DDL触发器
像常规触发器一样,DDL 触发器将激发存储过程以响应事件。但与 DML 触发器不同的是,它们不会为响应针对表或视图的 UPDATE、INSERT 或 DELETE 语句而激发。相反,它们将为了响应各种数据定义语言 (DDL) 事件而激发。这些事件主要与以关键字 CREATE、ALTER 和 DROP 开头的 Transact-SQL 语句对应。执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。


DDL 触发器可用于管理任务,例如审核和控制数据库操作。


如果要执行以下操作,请使用 DDL 触发器:


要防止对数据库架构进行某些更改。




希望数据库中发生某种情况以响应数据库架构中的更改。




要记录数据库架构中的更改或事件。




仅在运行触发 DDL 触发器的 DDL 语句后,DDL 触发器才会激发。DDL 触发器无法作为 INSTEAD OF 触发器使用。





ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

一次SQLSERVER触发器编写感悟

背景:BOSS需要我写一个工厂采集端到服务器端的数据同步触发器,数据库采用的是sqlserver2008 需求:将多台采集机的数据同步到服务器中,如果采集端数据库与服务器数据库连接失败则将数据保存到...
  • u013046841
  • u013046841
  • 2015年08月21日 02:34
  • 2977

如何屏蔽sqlServer触发器

我做的程序有时涉及大批量地将其他数据源的数据合并到Sqlserver数据库,这时候想不让触发器运行,否则回非常耗时,十分容易导致超时。  特请教: 该怎么暂时屏蔽触发器呢? 如能屏蔽,如何恢复正常呢?...
  • Tercel99
  • Tercel99
  • 2008年04月10日 22:59
  • 1583

sqlserver触发器根据COLUMNS_UPDATED内容生成动态更新列

关于动态生成select指令,根据条件选取特定的列,这个方法就不再细说了,百度一大把,基本就是拼接sql指令,然后exec sp_executesql 关于触发器,也不细说了,也是百度一大把...
  • superwfei
  • superwfei
  • 2017年10月19日 11:09
  • 533

SQL Server 触发器的使用,实现多字段自增长

今天遇到了个数据库的问题:主键ID字段自增长,编号Number字段自增长,但是SQL Server只支持一个自增长字段,那该怎么解决呢? 这时候就要用到了SQL Server的触发器功能了,废话不多...
  • yedajiang44
  • yedajiang44
  • 2017年05月25日 21:33
  • 457

触发器调试

      今天第一次写项目中的触发器。虽说以前也看过一些关于触发器的书籍,自己也知道语法,但是却从没有在真正的大项目中写过。按照项目的需求和触发器的语法,我成功创建了一个触发器。另我感到奇怪的是,原...
  • zyming0815
  • zyming0815
  • 2010年03月26日 10:17
  • 5685

Microsoft SQL Server 触发器更新、删除、插入表

//表插入CREATE TRIGGER INSERTDATEON A1AFTER INSERTAS BEGIN INSERT INTOA2 (A2NAME) SELECT A1NAME FROM IN...
  • hotmee
  • hotmee
  • 2015年11月13日 09:42
  • 1007

SQLServer触发器中 如何访问mySQL数据库?

我在sqlServer中有张表,需要在更新的时候同步到其他数据库中 (不同操作系统 不同数据库服务) 目标数据库使用的是mysql. 需要将添加到sqlserver中那张表的记录,修改后...
  • sxhong
  • sxhong
  • 2015年06月11日 07:43
  • 1624

SQLServer触发器禁用与启用

SQLServer触发器禁用与启用 禁用:   ALTER  TABLE  trig_example  DISABLE  TRIGGER  trig1   GO   恢复:   ALTER ...
  • zhuxueliao
  • zhuxueliao
  • 2012年10月15日 14:18
  • 288

SqlServer 管理,查看触发器

 前篇博文里概述了一下触发器的使用方法,这篇博文里就详细介绍一下在触发器中碰到的一些问题.当然,这些也只是我碰到了一小小部分的东西,因为涉及不深嘛!如果各位网友也碰到过触发器的一些问题,欢迎一起交流来...
  • huqifei
  • huqifei
  • 2008年01月22日 07:49
  • 3179

用触发器让sqlserver和mysql同步

任务:sqlsever中有表A,MySql中有表B。表A和表B结构一样但不在同一台机器上。要求实现当A中的数据有增删改操作时,在B中进行同样的操作。 方案一(已实现):每天定时删除B表再把A表全部复制...
  • bailin710258
  • bailin710258
  • 2013年10月10日 13:03
  • 2796
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员 SqlServer触发器
举报原因:
原因补充:

(最多只允许输入30个字)