mssql sqlserver @@NESTLEVEL关键字简介


摘要:
下文着重讲述@@NESTLEVEL关键字的用法说明
实验环境:sqlserver 2008


@@NESTLEVEL功能说明:
@@NESTLEVEL 返回在本地服务器上执行的当前存储过程的嵌套级别(初始值为 0)
返回值类型
—–
int
——————-
@@NESTLEVEL说明:
每次一个存储过程通过引用公共语言运行时 (CLR) 例程、类型或聚合来调用另一个存储过程或执行托管代码时,嵌套级别都会增加。 超过最大级数 32 时,事务即被终止。
在 Transact-SQL 字符串中执行 @@NESTLEVEL 时,返回的值为 1 + 当前嵌套级别。 使用 sp_executesql 动态执行 @@NESTLEVEL 时,返回的值为 2 + 当前嵌套级别。
例:

    CREATE PROC pr_test AS  
    SELECT @@NESTLEVEL AS '当前nestlevel';  
EXEC ('SELECT @@NESTLEVEL AS one');   
EXEC sp_executesql N'SELECT @@NESTLEVEL as two' ;  
GO  
EXEC pr_test;  
GO  
---输出----
 当前nestlevel
------------------  
1  

One   
-----------  
2  

Two  
-----------  
3