Sdílet prostřednictvím


@@NESTLEVEL (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrací úroveň vnoření aktuálního provádění uložené procedury (původně 0) na lokálním serveru.

Transact-SQL konvence syntaxe

Syntaxe

@@NESTLEVEL  

Návratové typy

int

Poznámky

Pokaždé, když uložená procedura volá jinou uloženou proceduru nebo vykonává spravovaný kód odkazem na běžnou rutinu, typ nebo agregát v běžném jazyce (CLR), úroveň vnoření se zvyšuje. Pokud je překročeno maximum 32, transakce je ukončena.

Když je @@NESTLEVEL vykonán v řetězci Transact-SQL, vrácená hodnota je 1 + aktuální úroveň vnoření. Když je @@NESTLEVEL vykonávána dynamicky pomocí sp_executesql vrácená hodnota je 2 + aktuální úroveň vnoření.

Examples

A. Použití @@NESTLEVEL v zákroku

Následující příklad vytváří dva postupy: jeden volá druhý a druhý zobrazuje @@NESTLEVEL nastavení každého z nich.

USE AdventureWorks2022;  
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  

Tady je soubor výsledků.

Outer Level  
-----------  
1  
 
Inner Level  
-----------  
2

B. Volám @@NESTLEVEL

Následující příklad ukazuje rozdíl hodnot vrácených , SELECTEXEC, a sp_executesql když každý z nich volá @@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  

Tady je soubor výsledků.

Current Nest Level  
------------------  
1  
 
(1 row(s) affected)  
 
OneGreater  
-----------  
2  
 
(1 row(s) affected)  
 
TwoGreater  
-----------  
3  
 
(1 row(s) affected)

Viz také

Konfigurační funkce (Transact-SQL)
Vytvoření uložené procedury
@@TRANCOUNT (Transact-SQL)