ERROR_MESSAGE (T-SQL)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric
Fungsi ini mengembalikan teks pesan dari kesalahan yang menyebabkan blok CATCH dari TRY... KONSTRUKSI CATCH untuk dieksekusi.
Sintaksis
ERROR_MESSAGE ( )
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Jenis Kembalian
nvarchar(4000)
Tampilkan Nilai
Ketika dipanggil dalam blok CATCH, ERROR_MESSAGE
mengembalikan teks lengkap pesan kesalahan yang menyebabkan CATCH
blok berjalan. Teks mencakup 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 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.
Di blok berlapisCATCH
, ERROR_MESSAGE
mengembalikan pesan 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_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
J. Menggunakan ERROR_MESSAGE dalam blok CATCH
Contoh ini menunjukkan SELECT
pernyataan yang menghasilkan kesalahan dibagi berdasarkan 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 hasil yang ditetapkan.
-----------
(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 dibagi berdasarkan nol. Bersama dengan pesan kesalahan, blok mengembalikan informasi tentang kesalahan tersebut CATCH
.
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 (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)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk