Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL 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.
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