@@NESTLEVEL (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Mengembalikan tingkat berlapis dari eksekusi prosedur tersimpan saat ini (awalnya 0) di server lokal.
Sintaksis
@@NESTLEVEL
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Jenis Kembalian
int
Keterangan
Setiap kali prosedur tersimpan memanggil prosedur tersimpan lain atau menjalankan kode terkelola dengan merujuk rutinitas, jenis, atau agregat runtime bahasa umum (CLR), tingkat bersarang akan bertambah. Ketika maksimum 32 terlampaui, transaksi dihentikan.
Saat @@NESTLEVEL dijalankan dalam string Transact-SQL, nilai yang dikembalikan adalah 1 + tingkat berlapis saat ini. Ketika @@NESTLEVEL dijalankan secara dinamis dengan menggunakan sp_executesql nilai yang dikembalikan adalah 2 + tingkat berlapis saat ini.
Contoh
J. Menggunakan @@NESTLEVEL dalam prosedur
Contoh berikut membuat dua prosedur: satu yang memanggil yang lain, dan yang menampilkan @@NESTLEVEL
pengaturan masing-masing.
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
Berikut adalah hasil yang ditetapkan.
Outer Level
-----------
1
Inner Level
-----------
2
B. Memanggil @@NESTLEVEL
Contoh berikut menunjukkan perbedaan nilai yang dikembalikan oleh SELECT
, , dan sp_executesql
ketika masing-masing memanggil @@NESTLEVEL
EXEC
.
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
Berikut adalah hasil yang ditetapkan.
Current Nest Level
------------------
1
(1 row(s) affected)
OneGreater
-----------
2
(1 row(s) affected)
TwoGreater
-----------
3
(1 row(s) affected)
Lihat Juga
Fungsi Konfigurasi (Transact-SQL)
Membuat Prosedur Tersimpan
@@TRANCOUNT (T-SQL)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk