Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar nästlingsnivån för den aktuella lagrade procedurens exekvering (initialt 0) på den lokala servern.
Transact-SQL syntaxkonventioner
Syntax
@@NESTLEVEL
Returtyper
int
Anmärkningar
Varje gång en lagrad proprodur anropar en annan lagrad produ eller kör hanterad kod genom att referera till en common language runtime (CLR)-rutin, typ eller aggregat, ökar nästlingsnivån. När maxgränsen på 32 överskrids avslutas transaktionen.
När @@NESTLEVEL körs inom en Transact-SQL sträng är värdet som returneras 1 + den aktuella nästlingsnivån. När @@NESTLEVEL utförs dynamiskt med sp_executesql är det returnerade värdet 2 + den aktuella nästlingsnivån.
Examples
A. Att använda @@NESTLEVEL i en procedur
Följande exempel skapar två procedurer: en som anropar den andra, och en som visar inställningen @@NESTLEVEL för varje.
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
Här är resultatet.
Outer Level
-----------
1
Inner Level
-----------
2
B. Ringer @@NESTLEVEL
Följande exempel visar skillnaden i värden som returneras av SELECT, , och sp_executesql när var och en av dem anropar @@NESTLEVELEXEC.
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
Här är resultatet.
Current Nest Level
------------------
1
(1 row(s) affected)
OneGreater
-----------
2
(1 row(s) affected)
TwoGreater
-----------
3
(1 row(s) affected)
Se även
Konfigurationsfunktioner (Transact-SQL)
Skapa en lagrad procedur
@@TRANCOUNT (Transact-SQL)