Aracılığıyla paylaş


@@ 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....

Topic link iconTransact-SQL sözdizimi kuralları

@@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)