@@ NESTLEVEL (Transact-SQL)
Geçerli saklı yordam yürütülmesinin iç içe düzey verir (başlangıçta 0) yerel sunucuda.İç içe düzeyler hakkında bilgi için bkz:Iç içe geçirilmesi yordamlar depolanan....
@@NESTLEVEL
Dönüş Türleri
int
Remarks
Başka bir saklı yordam çağrıları her saat saklı yordamını veya bir ortak dil çalýþma zamaný (CLR) yordamı, türünü veya toplamak başvurarak yönetilen kod çalıştırılır, iç içe geçmiş düzey artar.En fazla 32 aşıldığında, işlem sonlandırılır.
, @@ NESTLEVEL içinde yürütülen birTransact-SQLdize değeri verilir ise, 1 + geçerli iç içe düzey.Dinamik olarak kullanarak, @@ NESTLEVEL yürütüldüğündeSp_executesql 2 + Geçerli iç içe düzey. döndürülen değer olan
Örnekler
C.Bir yordam @@ NESTLEVEL kullanarak
Aşağıdaki örnek, iki yordam oluşturur: görüntüleyen bir ve diğer çağıran bir @@NESTLEVELher bir ayar.
USE AdventureWorks;
GO
IF OBJECT_ID (N'usp_OuterProc', N'P')IS NOT NULL
DROP PROCEDURE usp_OuterProc;
GO
IF OBJECT_ID (N'usp_InnerProc', N'P')IS NOT NULL
DROP PROCEDURE usp_InnerProc;
GO
CREATE PROCEDURE usp_InnerProc AS
SELECT @@NESTLEVEL AS 'Inner Level';
GO
CREATE PROCEDURE usp_OuterProc AS
SELECT @@NESTLEVEL AS 'Outer Level';
EXEC usp_InnerProc;
GO
EXECUTE usp_OuterProc;
GO
Here is the result set.
Outer Level
-----------
1
Inner Level
-----------
2
b.@@ NESTLEVEL arama
Aşağıdaki örnekte gösterildiği tarafından döndürülen değerler arasındaki farkSELECT,EXEC, vesp_executesqlher birini çağırır@@NESTLEVEL.
CREATE PROC usp_NestLevelValues AS
SELECT @@NESTLEVEL AS 'Current Nest Level';
EXEC ('SELECT @@NESTLEVEL AS OneGreater');
EXEC sp_executesql N'SELECT @@NESTLEVEL as TwoGreater' ;
GO
EXEC usp_NestLevelValues;
GO
Here is the result set.
Current Nest Level
------------------
1
(1 row(s) affected)
OneGreater
-----------
2
(1 row(s) affected)
TwoGreater
-----------
3
(1 row(s) affected)
See Also