Bagikan melalui


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.

Konvensi sintaks transact-SQL

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)