SQL SERVER的行式触发器

2016-02-19 21:19 5 1 收藏

图老师小编精心整理的SQL SERVER的行式触发器希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - 编程语言 】

  曾经以为SQL SERVER的触发器只能触发单行,也就是说如果一个delete触发器,如果同时删除多行时,只会对第一条记录触发,后来发现了不是人家SQL SERVER不支持,而是偶脑子笨没发现。

  其实inserted和deleted两张内部表存放了所有要插入或要删除的记录,可以用cursor逐次访问里面的每条记录,下面是一个示例,该触发器将要删除的记录转移到另一张表中:

  第一步,创建这两张表

create table table1([id] int primary key, [value] varchar(100))create table table2([id] int primary key, [value] varchar(100))

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  第二步,插入测试数据

declare @i intset @i = 1while @i = 100begin    insert into table1([id], [value])    values(@i, cast(@i as varchar))    set @i = @i + 1end

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  创建table1的delete触发器

create trigger tr_d_table1 on table1 for deleteasbegin    declare @id int, @value varchar(100)    declare cur_del cursor local forward_only for    select [id], [value]    from deleted    open cur_del    fetch next from cur_del into @id, @value    while @@fetch_status = 0    begin        insert into table2([id], [value])        values(@id, @value)            fetch next from cur_del into @id, @value    end    close cur_del    deallocate cur_del    end
现在对table1执行delete语句,发现所有被删除的记录都记录在在table2中了

来源:http://www.tulaoshi.com/n/20160219/1625867.html

延伸阅读
标签: SQLServer
触发器是数据库应用中的重用工具,它的应用很广泛。这几天写一个化学数据统计方面的软件,需要根据采样,自动计算方差,在这里,我使用了触发器。可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器。当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中。inserted表是一个逻辑表,它包含了已经插入的数据行...
标签: MySQL mysql数据库
Conventions and Styles约定和编程风格 每次我想要演示实际代码时,我会对mysql客户端的屏幕就出现的代码进行调整,将字体改成Courier,使他们看起来与普通文本不一样(让大家区别程序代码和正文)。在这里举个例子: mysql DROP FUNCTION f; Query OK, 0 rows affected (0.00 sec)...
添加,删除或修改数据库的对象,一旦误操作,可能会导致大麻烦,需要一个数据库管理员或开发人员对相关可能受影响的实体进行代码的重写。 为了在数据库结构发生变动而出现问题时,能够跟踪问题,定位问题的根源,我们可以利用DDL触发器来记录类似“用户建立表”这种变化的操作,这样可以大大减轻跟踪和定位数据库模式的变化的繁琐程...
这一节比较简单了,主要是讲如何在SQLCLR下设计触发器。在SQLServer2005里分两种触发器,DDL和DML两种触发器。DDL触发器是响应CREATE、ALTER 和 DROP 开头的语句。我们常用的是DML触发器,这一类触发器响应当数据库中发生数据操作包括表或视图中修改数据的 INSERT 、UPDATE 或 DELETE 。 对于.net来讲触发器也是方法,在上方标注[Micr...
标签: 电脑入门
触发器存在于自定义动画的计时选项中,是wps演示中的一项很重要的功能,作用是通过触发来实现播放设置对象动画,实现交互的目的。 触发器当然是有触而发,不触发设置触发器的对象,触发器下设置的一些动画就不会播放,在编辑状态可以通过标记发现触发器的存在。 打开带有触发器的wps演示文稿。执行幻灯片放映 自定义动画命令,打开自定义动...

经验教程

25

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部