System.Data.SqlClient.SqlException: 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为32)。 首先看看嵌套的定义: 如: 嵌套1层 select*from (select*fromSTUDENT )asA 嵌套2层 select*from (select*from (select*fromSTUDENT )asA )asB 常犯的错误: 1.触发器中嵌套调用 CREATETRIGGERMoniStudentIn...
System.Data.SqlClient.SqlException: 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为32)。 首先看看嵌套的定义: 如: 嵌套1层 select*from (select*fromSTUDENT )asA 嵌套2层 select*from (select*from (select*fromSTUDENT )asA )asB 常犯的错误: 1.触发器中嵌套调用 CREATETRIGGERMoniStudentIn...
System.Data.SqlClient.SqlException: 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为32)。 首先看看嵌套的定义: 如: 嵌套1层 select*from (select*fromSTUDENT )asA 嵌套2层 select*from (select*from (select*fromSTUDENT )asA )asB 常犯的错误: 1.触发器中嵌套调用 CREATETRIGGERMoniStudentIn...
B 表更新触发器, 更新 A 表。最后导致 来回折腾 32次以后, 出错结束了。
AvgScore int OUTPUT,CourseNum int OUTPUT,NotpassNum int OUTPUT AS BEGIN Select @AvgScore = Avg(Score) From SC Where SC.snum = @snum Select @CourseNum = Count(*) From SC Where SC.snum = @snum Select @NotpassNum = Count(*) From SC Where SC.snum = @snum and score...
超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32). 这个是存储过程写完后,在最后没有添加GO -- 示例: createproc xxx as begin select'123'; end -- 在后面添加 go -- 再写执行过程 execxxx;
解决:System.Data.SqlClient.SqlException: 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32). 看一下SQL语句之间,有没有少写go,所以造成了超出嵌套层数。
你这应该是在创建存储过程时将测试此存储过程的代码也被编译到存储过程里,因此造成了循环调用,因此会超出嵌套层数 比如 CREATE procedure [dbo].[PR_Test]as begin end exec PR_Test 这样就会出错
应该是你的存储过程、函数之间嵌套调用了,调用的层数过多(超过32层)导致的。嵌套调用需要堆栈的支持,考虑到性能,SQL对最多可嵌套的层数进行了限制导致的。
典型的递归调用了,你的触发器是对 [dbo].[ACPTB] 执行insert,update 后执行的,而触发器里面update dbo.ACPTB又要更新这个表,明显的递归了