触发器提示超出嵌套层次,

kang123033 2007-02-07 07:50:38
表PC如下:
-----------------------
PC 部门 楼层
PYC130

表PcDetails如下:
-----------------------------
Pcname Deparmtent Floor
PYC130 IT 一楼
...... ... ....

本人已经创建触发器如下:
create trigger UpPCtext1 on PC
for update,insert
as
if update(PC)
update PC
set 楼层=PcDetails.Floor,部门=PcDetails.Department
from PC,PcDetails
where PC.PC=PcDetails.Pcname

要求:自动更新部门及楼层

问题如下:
超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。
...全文
391 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
人鱼传说 2007-02-09
  • 打赏
  • 举报
回复
这种情况要写成存储过程,没有必要用触发器,你这样用的后果就是一个死循环了
zsl5305256 2007-02-08
  • 打赏
  • 举报
回复
create trigger UpPCtext1 on PC
for update,insert
as
if @@error<>0 return
if update(PC)
update PC
set 楼层=PcDetails.Floor,部门=PcDetails.Department
from PC,PcDetails
where PC.PC=PcDetails.Pcname
hxDreamer 2007-02-08
  • 打赏
  • 举报
回复
我感觉好像是迭代了,更新更新触发器中更新PC表,虽然指明了if update(PC)。建议在PC表中的操作不要用PC名字,用inserted或deleted如果需要。
mschen 2007-02-07
  • 打赏
  • 举报
回复
试试把嵌套触发器关掉.

sp_configure 'nested triggers',1
Go
RECONFIGURE
Go
kang123033 2007-02-07
  • 打赏
  • 举报
回复
请问点样修改啊!
可否再详细解释一下,怎样死循环啊?
谢谢
playwarcraft 2007-02-07
  • 打赏
  • 举报
回复
嵌套受32層的約束,
試試不要用嵌套的方法...

p.s: 貌似你的trigger有點問題...死循環?
kang123033 2007-02-07
  • 打赏
  • 举报
回复
还是不行啊!请问有没有其它方法啊???????谢谢

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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