Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Visszaadja a helyi szerveren tárolt eljárás végrehajtásának (kezdetben 0) beágyazási szintjét.
Transact-SQL szintaxis konvenciók
Szemantika
@@NESTLEVEL
Visszatérési típusok
int
Megjegyzések
Minden alkalommal, amikor egy tárolt eljárás egy másik tárolt eljárást hív, vagy kezelt kódot hajt végre egy közös nyelvi futási (CLR) rutinra, típusra vagy aggregátumra hivatkozva, a beágyazási szint növeksdik. Amikor a maximum, 32 túllépik, a tranzakció megszűnik.
Amikor @@NESTLEVEL egy Transact-SQL láncsoron belül van végrehajtva, a visszaadott érték 1 + az aktuális fészekelési szint. Amikor @@NESTLEVEL dinamikusan hajtjuk végre sp_executesql használatával, a visszanyert érték 2 + az aktuális fészekelési szint.
Példák
A. @@NESTLEVEL használata egy eljárásban
A következő példa két eljárást hoz létre: az egyiket hívja a másikat, és egyet, amely mindegyik beállítását mutatja @@NESTLEVEL .
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
Itt van az eredmények összessége.
Outer Level
-----------
1
Inner Level
-----------
2
B. Hívom @@NESTLEVEL
A következő példa mutatja a különbséget az értékek között, amelyeket , SELECTEXECsp_executesql , és amikor mindegyik meghívja .@@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
Itt van az eredmények összessége.
Current Nest Level
------------------
1
(1 row(s) affected)
OneGreater
-----------
2
(1 row(s) affected)
TwoGreater
-----------
3
(1 row(s) affected)
Lásd még:
Konfigurációs funkciók (Transact-SQL)
Tárolt eljárás létrehozása
@@TRANCOUNT (Transact-SQL)