ERROR_NUMBER (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Fungsi ini mengembalikan nomor kesalahan kesalahan yang menyebabkan blok CATCH dari TRY... KONSTRUKSI CATCH untuk dieksekusi.
Sintaks
ERROR_NUMBER ( )
Jenis Kembalian
int
Tampilkan Nilai
Ketika dipanggil dalam 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 berbeda dengan fungsi seperti @@ERROR, yang hanya mengembalikan nomor kesalahan dalam pernyataan segera setelah yang menyebabkan kesalahan.
Dalam blok berlapisCATCH
, ERROR_NUMBER
mengembalikan nomor kesalahan khusus untuk cakupan blok yang mereferensikan CATCH
blok tersebutCATCH
. 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
J. Menggunakan ERROR_NUMBER dalam blok CATCH
Contoh ini menunjukkan SELECT
pernyataan yang menghasilkan kesalahan dibagi berdasarkan 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 set hasilnya.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. Menggunakan ERROR_NUMBER dalam blok CATCH dengan alat penanganan kesalahan lainnya
Contoh ini menunjukkan SELECT
pernyataan yang menghasilkan kesalahan dibagi berdasarkan 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 set hasilnya.
-----------
(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)
COBA... CATCH (Transact-SQL)
ERROR_LINE (T-SQL)
ERROR_MESSAGE (T-SQL)
ERROR_PROCEDURE (T-SQL)
ERROR_SEVERITY (T-SQL)
ERROR_STATE (T-SQL)
RAISERROR (Transact-SQL)
@@ERROR (T-SQL)
Referensi Kesalahan dan Peristiwa (Mesin Database)