嵌套触发器
来源:互联网 发布:ubuntu文件夹有锁 编辑:程序博客网 时间:2024/05/18 00:30
嵌套触发器
当某一触发器执行时,能够触发另一个触发器,这种情况下称之为触发器嵌套。在执行过程中,如果一个触发器修改某个表时,而这个表有其他触发器,这时就使用了嵌套触发器。在SQL server 中,触发器能够嵌套至32层。如果不需要嵌套触发器,可以通过sp_configure 选项进行设置。
Oracle 不支持嵌套触发器
创建DELETE 触发器A_delete,实现每次只能从Author 表中删除一条记录,同时删除book表中与之对应的记录。为BOOK 表创建DELETE触发器 B_delete,每次只能删除book表中的一条记录。实现代码如下:
create trigger A_delete
on Author
for Delete as
declare @rowcount int
select @rowcount = @@ROWCOUNT
if @rowcount>1
begin
rollback transaction
raiserror('当前要删除的记录数为%d,一次只允许删除一行记录!',16,1,@rowcount)
end
else
declare @Author char(8)
select @Author = Author
from deleted
delete book
where Author = @Author
create trigger B_delete
on book
for delete as
declare @rowcount int
select @rowcount = @@ROWCOUNT
if @rowcount>1
begin
rollback transaction
raiserror('当前要删除的记录数为%d,一次只允许删除一行记录!',16,1,@rowcount)
end
else
print 'Author 表和book 表中相应的数据均被删除'
递归触发器
sp_dboption 'dbName','Recursive Triggers',TRUE
dbName 为数据库名。如果把最后的参数由“True”变为“FALSE”,则为禁止数据库直接递归操作。
当某一触发器执行时,能够触发另一个触发器,这种情况下称之为触发器嵌套。在执行过程中,如果一个触发器修改某个表时,而这个表有其他触发器,这时就使用了嵌套触发器。在SQL server 中,触发器能够嵌套至32层。如果不需要嵌套触发器,可以通过sp_configure 选项进行设置。
Oracle 不支持嵌套触发器
创建DELETE 触发器A_delete,实现每次只能从Author 表中删除一条记录,同时删除book表中与之对应的记录。为BOOK 表创建DELETE触发器 B_delete,每次只能删除book表中的一条记录。实现代码如下:
create trigger A_delete
on Author
for Delete as
declare @rowcount int
select @rowcount = @@ROWCOUNT
if @rowcount>1
begin
rollback transaction
raiserror('当前要删除的记录数为%d,一次只允许删除一行记录!',16,1,@rowcount)
end
else
declare @Author char(8)
select @Author = Author
from deleted
delete book
where Author = @Author
create trigger B_delete
on book
for delete as
declare @rowcount int
select @rowcount = @@ROWCOUNT
if @rowcount>1
begin
rollback transaction
raiserror('当前要删除的记录数为%d,一次只允许删除一行记录!',16,1,@rowcount)
end
else
print 'Author 表和book 表中相应的数据均被删除'
递归触发器
sp_dboption 'dbName','Recursive Triggers',TRUE
dbName 为数据库名。如果把最后的参数由“True”变为“FALSE”,则为禁止数据库直接递归操作。
0 0
- 嵌套触发器
- 嵌套触发器
- 使用嵌套触发器
- 5.SQL Server DML触发器--嵌套和递归触发器
- 实例解析SQL SERVER嵌套触发器使用方法
- MySQL 存储过程游标嵌套,触发器调用存储过程
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- cocos2dx-3.0(前言)
- 普林斯顿公开课 算法1-5:算法理论
- BZOJ2662 [BeiJing wc2012]冻结 最短路
- HDU 4836 The Query on the Tree lca || 欧拉序列 || 动态树
- tomcat-7.0.54配置管理员帐号密码
- 嵌套触发器
- 普林斯顿公开课 算法1-6:内存
- C#程序读取数据库中包含null的列的值
- 假设修正法学习笔记
- 普林斯顿公开课 算法1-7:并查集基本概念
- JavaScript语法详解(五)____运算符
- 模拟ArrayList底层实现
- [Android开发教程]Android官网developer training中文版教程 - 1.1.2 运行你的应用程序
- 1079: [SCOI2008]着色方案