利用sp_settriggerorder设置触发器执行顺序

上传人:wt****50 文档编号:37827720 上传时间:2018-04-23 格式:DOCX 页数:2 大小:14.14KB
返回 下载 相关 举报
利用sp_settriggerorder设置触发器执行顺序_第1页
第1页 / 共2页
利用sp_settriggerorder设置触发器执行顺序_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《利用sp_settriggerorder设置触发器执行顺序》由会员分享,可在线阅读,更多相关《利用sp_settriggerorder设置触发器执行顺序(2页珍藏版)》请在金锄头文库上搜索。

1、今天看到有朋友在群中问能否为触发器设置执行顺序,有朋友说触发器在数据库中自动执行,所以不能够设置执行顺序。其实这种说法是不对的,我们可以利用 sp_settriggerorder 为部分触发器设置执行顺序。先看看 sp_settriggerorder 的功能说明:sp_settriggerorder:指定第一个激发或最后一个激发的 AFTER 触发器。在第一个和最后一个触发器之间触发的 AFTER 触发器将按未定义的顺序执行。语法说明:sp_settriggerorder triggername = triggerschema. triggername, order = value, stmt

2、type = statement_type , namespace = DATABASE | SERVER | NULL 参数说明:triggername = triggerschema. triggername要设置或更改其顺序的触发器的名称及其所属的架构。order= value触发器的新顺序的设置,可以是下列值中的任意一个值。First-触发器被第一个触发。 Last-触发器被最后一个触发。 None-触发器以未定义的顺序触发。stmttype= statement_type指定触发器的类型,可以是 INSERT、UPDATE、DELETE、LOGON 或用于激发 DDL 触发器的 DD

3、L 事件中列出的任何 Transact-SQL 语句事件。namespace = DATABASE | SERVER | NULL 如果 triggername 是 DDL 或登录触发器,则指定所创建的 triggername 是具有数据库范围还是服务器范围。返回值:0(成功)或 1(失败)注意:注意:1,当触发器被修改,那么对它的 sp_settriggerorder 设置也会失效,也就是说每次修改触发器后,你都需要重新利用 sp_settriggerorder 对执行顺序进行设置。2,同一类型的触发器(insert,update,delete)只能设置一个 First 与一个 Last 触

4、发器,也就是说,只能设置一个最先执行的与最后执行的触发器,中间的就设置不了。示例代码:示例代码:设置 insert 触发器 ti_Storage_MoveDetail 为第一个执行的触发器sp_settriggerorder ti_Storage_MoveDetail,first,insert设置 update 触发器 tu_Storage_MoveDetail 为最后一个执行的触发器sp_settriggerorder tu_Storage_MoveDetail,last,update所以, 如果触发器不是 instead of 触发器,而且每类(insert,update,delete)的触发器数量不超过 3 个,那我们就完全可以控制执行顺序。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号