![](/img/trans.png)
[英]Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32) using SQL Server 2014
[英]Nesting level limit error in SQL Server 2014
我们具有以下SQL Server存储过程:
ALTER PROCEDURE [dbo].[up_get_id]
(@KeyName VARCHAR(30), @ID INTEGER OUTPUT)
AS
BEGIN
DECLARE @SEQ_NAME VARCHAR(120);
SET @SEQ_NAME = 'seq_dbk_' + @KeyName;
DECLARE @SQL NVARCHAR(1000);
SET @SQL = 'set @ID = next value for ' + @SEQ_NAME;
EXEC sp_executesql @SQL, N'@ID int out', @ID = @ID output;
RETURN 0;
END
GO
有时(并非总是如此,可能在高负载下)在调用存储过程之后:
declare @P1 int
exec up_get_id @KeyName = 'KEY', @ID = @P1 output
select @P1 Result
客户端出现错误:
警告:致命错误217发生在2011年11月21日下午12:54。 记下错误和时间,然后与系统管理员联系。
此外,SQL Server日志中将显示以下消息:
超过最大存储过程,函数,触发器或视图嵌套级别(限制2)。
关于什么是错的任何想法?
服务器版本:
Microsoft SQL Server 2014 - 12.0.4213.0 (X64)
Jun 9 2015 12:06:16
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
未答复:)
如果COMPATIBILITY_LEVEL 100以下的错误
超过最大存储过程,函数,触发器或视图嵌套级别(限制2)。
110以上
如果已设置ROWCOUNT选项,或者查询包含TOP或OFFSET,则不能使用NEXT VALUE FOR函数。
因此,您将ROWCOUNT设置为<> 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.