SQL SERVER的行式触发器

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

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

【 tulaoshi.com - 编程语言 】

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

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

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

  第一步,创建这两张表

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

(本文来源于图老师网站,更多请访问https://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

  创建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中了

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

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

经验教程

323

收藏

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