ERROR_NUMBER (SQL bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Fungsi ini mengembalikan jumlah kesalahan kesalahan yang menyebabkan blok CATCH dari TRY... Konstruksi CATCH untuk dieksekusi.
Sintaks
ERROR_NUMBER ( )
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Jenis Pengembalian
int
Tampilkan Nilai
Ketika dipanggil di blok CATCH, ERROR_NUMBER mengembalikan nomor kesalahan kesalahan yang menyebabkan blok CATCH berjalan.
ERROR_NUMBER mengembalikan NULL saat dipanggil di luar cakupan blok CATCH.
Keterangan
ERROR_NUMBER mendukung panggilan di mana saja dalam cakupan blok CATCH.
ERROR_NUMBER mengembalikan nomor kesalahan yang relevan terlepas dari berapa kali eksekusinya, atau di mana ia berjalan dalam cakupan CATCH blok. Ini kontras dengan fungsi seperti @@ERROR, yang hanya mengembalikan nomor kesalahan dalam pernyataan segera setelah yang menyebabkan kesalahan.
Dalam blok berlapis CATCH , ERROR_NUMBER mengembalikan nomor kesalahan khusus untuk cakupan blok yang mereferensikan blok tersebut CATCHCATCH . Misalnya, CATCH blok TRY luar... Konstruksi CATCH bisa memiliki konstruksi dalam TRY...CATCH . Di dalam blok dalam CATCH itu, ERROR_NUMBER mengembalikan jumlah kesalahan yang memanggil blok dalam CATCH . Jika ERROR_NUMBER berjalan di blok luar CATCH , ia mengembalikan jumlah kesalahan yang memanggil blok luar CATCH tersebut.
Contoh
A. Menggunakan ERROR_NUMBER dalam blok CATCH
Contoh ini menunjukkan SELECT pernyataan yang menghasilkan kesalahan bagi-demi-nol. CATCH Blok mengembalikan nomor kesalahan.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
Berikut adalah tataan hasil.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. Menggunakan ERROR_NUMBER di blok CATCH dengan alat penanganan kesalahan lainnya
Contoh ini menunjukkan SELECT pernyataan yang menghasilkan kesalahan bagi-demi-nol. Bersama dengan nomor kesalahan, CATCH blok mengembalikan informasi tentang kesalahan tersebut.
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
Berikut adalah hasil yang ditetapkan.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Lihat juga
sys.messages (Transact-SQL)
MENCOBA... CATCH (SQL Bertransaksi)
ERROR_LINE (SQL Bertransaksi)
ERROR_MESSAGE (SQL bertransaksi)
ERROR_PROCEDURE (SQL bertransaksi)
ERROR_SEVERITY (SQL bertransaksi)
ERROR_STATE (SQL Bertransaksi)
RAISERROR (SQL bertransaksi)
@@ERROR (SQL Bertransaksi)
Kesalahan dan Referensi Peristiwa (Mesin Database)
