超出存储过程、函数、触发器或视图的最大嵌套层数

我的触发器:

ALTER TRIGGER [Trig_Update]
   ON  [dbo].[Zc_Goods]
   for update
AS
declare @goodsname  nvarchar(50),@goodstype nvarchar(50),@goodsunit nvarchar(50),@goodsnum nvarchar(50),@remark nvarchar(50)


select @goodsname=[GoodsName],@goodstype=[GoodsType],@goodsunit=[GoodsUnit],@goodsnum=[GoodsNum],@remark=[GoodsRemark] from inserted
BEGIN
 INSERT INTO [ZcStore].[dbo].[Zc_InStock]
           (
             [AddTime]
           )
     VALUES
           (
            CONVERT(varchar(100), GETDATE(), 25)
           )
END

这样写能够执行。

当我添加多行时,也就是:

INSERT INTO [ZcStore].[dbo].[Zc_InStock]
           (
             [NameKind]
           ,[Name]
           ,[Ggxh]
           ,[Dw]
           ,[Num]
           ,[AddTime]
           ,[Remark])
     VALUES
           (@goodsname,@goodstype,@goodsunit,@goodsnum,CONVERT(varchar(100), GETDATE(), 25),@remark)
就会出现:超出存储过程、函数、触发器或视图的最大嵌套层数

请问哪位能帮我解决一下,小弟实在是搞不明白!

陪伴而非守候
浏览 1162回答 4
4回答

森栏

应该是多个触发器相互影响造成的,你看看关于Zc_InStock的触发器有没有操作Zc_Goods

慕沐林林

十分感谢!!

倚天杖

ALTER TRIGGER [Trig_Update]    ON  [dbo].[Zc_Goods]   for update @goodsname  nvarchar(50), @goodstype nvarchar(50), @goodsunit nvarchar(50), @goodsnum nvarchar(50), @remark nvarchar(50)ASBEGIN select @goodsname=[GoodsName],@goodstype=[GoodsType],@goodsunit=[GoodsUnit],@goodsnum=[GoodsNum],@remark=[GoodsRemark] from inserted END GO; INSERT INTO [ZcStore].[dbo].[Zc_InStock]           (             [NameKind]           ,[Name]           ,[Ggxh]           ,[Dw]           ,[Num]           ,[AddTime]           ,[Remark])     VALUES           (@goodsname,@goodstype,@goodsunit,@goodsnum,CONVERT(varchar(100), GETDATE(), 25),@remark)
打开App,查看更多内容
随时随地看视频慕课网APP