ERROR_MESSAGE (Transact-SQL)

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 teks pesan kesalahan yang menyebabkan blok CATCH dari TRY... Konstruksi CATCH untuk dieksekusi.

tautan topikIkon Konvensi Sintaks Transact-SQL

Sintaks

ERROR_MESSAGE ( )   

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Jenis Pengembalian

nvarchar(4000)

Tampilkan Nilai

Ketika dipanggil dalam blok CATCH, ERROR_MESSAGE mengembalikan teks lengkap pesan kesalahan yang menyebabkan CATCH blok berjalan. Teks menyertakan nilai yang disediakan untuk parameter yang dapat diganti - misalnya, panjang, nama objek, atau waktu.

ERROR_MESSAGE mengembalikan NULL saat dipanggil di luar cakupan blok CATCH.

Keterangan

ERROR_MESSAGE mendukung panggilan di mana saja dalam cakupan blok CATCH.

ERROR_MESSAGE mengembalikan pesan kesalahan yang relevan terlepas dari berapa kali berjalan, 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_MESSAGE mengembalikan pesan 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_MESSAGE mengembalikan pesan dari kesalahan yang memanggil blok dalam CATCH . Jika ERROR_MESSAGE berjalan di blok luar CATCH , ia mengembalikan pesan dari kesalahan yang memanggil blok luar CATCH tersebut.

Contoh

A. Menggunakan ERROR_MESSAGE dalam blok CATCH

Contoh ini menunjukkan SELECT pernyataan yang menghasilkan kesalahan bagi-demi-nol. Blok CATCH mengembalikan pesan kesalahan.

BEGIN TRY  
    -- Generate a divide-by-zero error.  
    SELECT 1/0;  
END TRY  
BEGIN CATCH  
    SELECT ERROR_MESSAGE() AS ErrorMessage;  
END CATCH;  
GO  

Berikut adalah tataan hasil.

-----------

(0 row(s) affected)

ErrorMessage
----------------------------------
Divide by zero error encountered.

(1 row(s) affected)

B. Menggunakan ERROR_MESSAGE dalam blok CATCH dengan alat penanganan kesalahan lainnya

Contoh ini menunjukkan SELECT pernyataan yang menghasilkan kesalahan bagi-demi-nol. Bersama dengan pesan 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 (Transact-SQL)
ERROR_LINE (T-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (T-SQL)
ERROR_SEVERITY (T-SQL)
ERROR_STATE (T-SQL)
RAISERROR (Transact-SQL)
@@ERROR (T-SQL)
Kesalahan dan Referensi Peristiwa (Mesin Database)