游客:
注册
|
登录
|
帮助
网友俱乐部
»
数据库操作
»
Oracle教程
» 快速掌握指定第一个和最后一个触发器
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
传世私服
|
传奇世界私服
注册亚洲交友中心,找个人来同居吧!
免费存储空间,免费网络硬盘
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: 快速掌握指定第一个和最后一个触发器
lonjew
元帅
UID 73191
精华
1
积分 30615
帖子 14941
威望 3
金币 14931
热心 12
阅读权限 100
注册 2008-1-28
状态 离线
#1
使用道具
发表于 2008-3-29 19:14
资料
个人空间
主页
短消息
加为好友
快速掌握指定第一个和最后一个触发器
快速掌握指定第一个和最后一个触发器
可将与表相关联的 AFTER 触发器之一指定为每个 INSERT、DELETE 和 UPDATE 触发动作执行的第一个或最后一个 AFTER 触发器。在第一个和最后一个触发器之间激发的 AFTER 触发器将按未定义的顺序执行。
若要指定 AFTER 触发器的顺序,请使用 sp_settriggerorder
存储
过程。可用的选项有:
◆第一个
指定该触发器是为触发操作激发的第一个 AFTER 触发器。
◆最后一个
指定该触发器是为触发操作激发的最后一个 AFTER 触发器。
◆无
指定触发器的激发没有特定的顺序。主要用于重新设置第一个或最后一个触发器。
以下是使用 sp_settriggerorder 的示例:
sp_settriggerorder @triggername = 'MyTrigger', @order = 'first', @stmttype = 'UPDATE'
重要 第一个和最后一个触发器必须是两个不同的触发器。
可能同时在表上定义了 INSERT、UPDATE 和 DELETE 触发器。每种语句类型可能都有自己的第一个和最后一个触发器,但它们不能是相同的触发器。
如果为某个表定义的第一个或最后一个触发器不包括触发操作,如 FOR UPDATE、FOR DELETE 或 FOR INSERT,则缺少的操作将没有第一个或最后一个触发器。
不能将 INSTEAD OF 触发器指定为第一个或最后一个触发器。在对基础表进行更新前激发 INSTEAD OF 触发器。然而,如果由 INSTEAD OF 触发器对基础表进行更新,则这些更新将发生于在表上定义触发器(包括第一个触发器)之后。例如,如果视图上的 INSTEAD OF 触发器更新基表并且该基表包含三个触发器,则该三个触发器在 INSTEAD OF 触发器插入数据之前激发。有关更多信息,请参见指定触发器何时激发。
如果 ALTER TRIGGER 语句更改了第一个或最后一个触发器,则将除去 First 或 Last 特性,并且顺序值将设置为 None;必须用 sp_settriggerorder 重置此顺序。
OBJECTPROPERTY 函数使用属性 ExecIsFirstTrigger 和 ExecIsLastTrigger 报告触发器的顺序是第一个还是最后一个。
复制将为本身是即时更新订户或排队更新订户的任何表自动生成第一个触发器。复制要求它的触发器是第一个触发器。如果尝试使具有第一个触发器的表成为即时更新订户或排队更新订户,复制将引发错误。如果使表成为即时更新订户或排队更新订户之后使用户定义触发器成为第一个触发器,则 sp_settriggerorder 会返回一个错误。如果在复制触发器上使用 ALTER,或使用 sp_settriggerorder 将复制触发器更改为最后触发器或无触发器,则订阅将不能正确工作。
网友
lonjew
签名 - 网友社区
==
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-10-13 23:04
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP