提问,如何递归触发delete触发器

linkyou 2004-05-11 09:19:42
删除树某节点下所有叶节点
delete触发器如下,但是结果只触发了一次触发器自己里边的delete没有触发
delete触发器,为什么,有什么办法解决
CREATE TRIGGER [删除地域] ON dbo.AREA
FOR Delete
AS
declare @jj varchar(20)
declare @ii varchar(20)
if @@rowcount =1
begin
set @jj=(select Area_UC from Deleted)
set @ii=(Select Area_CC From Deleted)
print @jj
Update Area Set Area_DNum=Area_DNum-1 where Area_CC=@jj
delete from Area Where Area_UC=@ii
end
...全文
127 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-05-11
  • 打赏
  • 举报
回复
别的情况不会,但是要求你以后写触发器的时候,注意有递归这回事.

而且递归的最大层数为32层.
linkyou 2004-05-11
  • 打赏
  • 举报
回复
请问这样设置了,会不会出现别的问题,为什么sqlServer不默认该项呢
linkyou 2004-05-11
  • 打赏
  • 举报
回复
晕,又可以了,可能是没有刷新
linkyou 2004-05-11
  • 打赏
  • 举报
回复
我设置啦
zjcxc 元老 2004-05-11
  • 打赏
  • 举报
回复
--要设置允许递归触发才行:
alter database 你的库名 set RECURSIVE_TRIGGERS ON



RECURSIVE_TRIGGERS ON | OFF
如果指定为 ON,将允许递归激发触发器。RECURSIVE_TRIGGERS OFF(默认值)只禁止直接递归。若要也禁用间接递归,请使用 sp_configure 将 nested triggers 服务器选项设置为 0。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧