SQL SERVER的行式触发器

殷云霄

殷云霄

2016-02-19 21:19

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

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

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

  第二步,插入测试数据

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

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

展开更多 50%)
分享

猜你喜欢

SQL SERVER的行式触发器

编程语言 网络编程
SQL SERVER的行式触发器

SQL SERVER使用嵌套触发器

SQLServer
SQL SERVER使用嵌套触发器

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

浅谈SQL Server触发器的使用

编程语言 网络编程
浅谈SQL Server触发器的使用

SQL Server 2008中的代码安全(二) DDL触发器与登录触发器

编程语言 网络编程
SQL Server 2008中的代码安全(二) DDL触发器与登录触发器

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server约束和DML触发器的比较

编程语言 网络编程
SQL Server约束和DML触发器的比较

如何使用SQL Server 2005 INSTEAD-OF触发器

PHP
如何使用SQL Server 2005 INSTEAD-OF触发器

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Dreamweaver教程:添加背景音乐

Dreamweaver教程:添加背景音乐

Windows Defender简介 Win8自带防护甲

Windows Defender简介 Win8自带防护甲
下拉加载更多内容 ↓