ERROR_STATE (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengembalikan jumlah status kesalahan yang menyebabkan blok CATCH dari TRY... KONSTRUKSI CATCH yang akan dijalankan.
Sintaks
ERROR_STATE ( )
Jenis Kembalian
int
Tampilkan Nilai
Ketika dipanggil dalam blok CATCH, mengembalikan nomor status pesan kesalahan yang menyebabkan blok CATCH dijalankan.
Mengembalikan NULL jika dipanggil di luar cakupan blok CATCH.
Keterangan
Beberapa pesan kesalahan dapat dimunculkan di beberapa titik dalam kode untuk Mesin Database Microsoft SQL Server. Misalnya, kesalahan "1105" dapat dimunculkan untuk beberapa kondisi yang berbeda. Setiap kondisi tertentu yang memunculkan kesalahan menetapkan kode status unik.
Saat melihat database masalah yang diketahui, seperti Pangkalan Pengetahuan Microsoft, Anda dapat menggunakan nomor status untuk menentukan apakah masalah yang direkam mungkin sama dengan kesalahan yang Anda temui. Misalnya, jika artikel Pangkalan Pengetahuan membahas pesan kesalahan 1105 dengan status 2, dan pesan kesalahan 1105 yang Anda terima memiliki status 3, kesalahan Anda mungkin memiliki penyebab yang berbeda dari yang dilaporkan dalam artikel.
Teknisi dukungan SQL Server juga dapat menggunakan kode status dari kesalahan untuk menemukan lokasi dalam kode sumber tempat kesalahan tersebut dimunculkan, yang dapat memberikan ide tambahan tentang cara mendiagnosis masalah.
ERROR_STATE dapat dipanggil di mana saja dalam cakupan blok CATCH.
ERROR_STATE mengembalikan status kesalahan terlepas dari berapa kali dijalankan, atau di mana ia dijalankan dalam cakupan blok CATCH. Ini berbeda dengan fungsi seperti @@ERROR, yang hanya mengembalikan nomor kesalahan dalam pernyataan segera setelah yang menyebabkan kesalahan, atau dalam pernyataan pertama blok CATCH.
Dalam blok CATCH berlapis, ERROR_STATE mengembalikan status kesalahan khusus untuk cakupan blok CATCH tempat blok tersebut direferensikan. Misalnya, blok CATCH dari TRY luar... Konstruksi CATCH bisa memiliki TRY berlapis ... KONSTRUKSI CATCH. Dalam blok CATCH berlapis, ERROR_STATE mengembalikan status dari kesalahan yang memanggil blok CATCH berlapis. Jika ERROR_STATE dijalankan di blok CATCH luar, ia mengembalikan status dari kesalahan yang memanggil blok CATCH tersebut.
Contoh
J. Menggunakan ERROR_STATE dalam blok CATCH
Contoh berikut menunjukkan SELECT
pernyataan yang menghasilkan kesalahan dibagi berdasarkan nol. Status kesalahan dikembalikan.
BEGIN TRY
-- Generate a divide by zero error
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_STATE() AS ErrorState;
END CATCH;
GO
B. Menggunakan ERROR_STATE dalam blok CATCH dengan alat penanganan kesalahan lainnya
Contoh berikut menunjukkan SELECT
pernyataan yang menghasilkan kesalahan dibagi berdasarkan nol. Bersama dengan status kesalahan, informasi yang berkaitan dengan kesalahan dikembalikan.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
C. Menggunakan ERROR_STATE dalam blok CATCH dengan alat penanganan kesalahan lainnya
Contoh berikut menunjukkan SELECT
pernyataan yang menghasilkan kesalahan dibagi berdasarkan nol. Bersama dengan status kesalahan, informasi yang berkaitan dengan kesalahan dikembalikan.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Lihat Juga
sys.messages (Transact-SQL)
COBA... CATCH (Transact-SQL)
ERROR_LINE (T-SQL)
ERROR_MESSAGE (T-SQL)
ERROR_NUMBER (T-SQL)
ERROR_PROCEDURE (T-SQL)
ERROR_SEVERITY (T-SQL)
RAISERROR (Transact-SQL)
@@ERROR (T-SQL)
Referensi Kesalahan dan Peristiwa (Mesin Database)