Memahami Kesalahan Mesin Database

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Kesalahan yang dimunculkan oleh Microsoft SQL Server Database Engine memiliki atribut yang dijelaskan dalam tabel berikut.

Atribut Deskripsi
Nomor kesalahan Setiap pesan kesalahan memiliki nomor kesalahan unik.
String pesan kesalahan Pesan kesalahan berisi informasi diagnostik tentang penyebab kesalahan. Banyak pesan kesalahan memiliki variabel substitusi di mana informasi, seperti nama objek yang menghasilkan kesalahan, dimasukkan.
Tingkat keparahan Tingkat keparahan menunjukkan seberapa serius kesalahan tersebut. Kesalahan yang memiliki tingkat keparahan rendah, seperti 1 atau 2, adalah pesan informasi atau peringatan tingkat rendah. Kesalahan yang memiliki tingkat keparahan tinggi menunjukkan masalah yang harus ditangani sesegera mungkin. Untuk informasi selengkapnya tentang tingkat keparahan, lihat Tingkat Keparahan Kesalahan Mesin Database.
Provinsi Beberapa pesan kesalahan dapat dimunculkan di beberapa titik dalam kode untuk Mesin Database. Misalnya, kesalahan 1105 dapat dimunculkan untuk beberapa kondisi yang berbeda. Setiap kondisi spesifik yang menimbulkan kesalahan menetapkan kode status unik.

Saat Anda melihat database yang berisi informasi tentang masalah yang diketahui, seperti Pangkalan Pengetahuan Microsoft, Anda dapat menggunakan nomor status untuk menentukan apakah masalah yang direkam sama dengan kesalahan yang Anda alami. Misalnya, jika Artikel Pangkalan Pengetahuan menjelaskan kesalahan 1105 yang memiliki status 2 dan pesan kesalahan 1105 yang Anda terima memiliki status 3, kesalahan mungkin memiliki penyebab yang berbeda dari yang dilaporkan dalam artikel.

Teknisi dukungan Microsoft juga dapat menggunakan kode status dari kesalahan untuk menemukan lokasi dalam kode sumber tempat kode kesalahan tersebut dinaikkan. Informasi ini mungkin memberikan ide tambahan tentang cara mendiagnosis masalah.
Nama prosedur Adalah nama prosedur tersimpan atau pemicu di mana kesalahan telah terjadi.
Nomor baris Menunjukkan pernyataan mana dalam batch, prosedur tersimpan, pemicu, atau fungsi yang menghasilkan kesalahan.

Semua pesan kesalahan yang ditentukan sistem dan pengguna dalam instans Mesin Database terkandung dalam tampilan katalog sys.messages . Anda dapat menggunakan pernyataan RAISERROR untuk mengembalikan kesalahan yang ditentukan pengguna ke aplikasi.

Semua API database, seperti namespace Microsoft .NET Framework SQLClient, ActiveX Data Objects (ADO), OLE DB, dan Open Database Koneksi ivity (ODBC), melaporkan atribut kesalahan dasar. Informasi ini mencakup nomor kesalahan dan string pesan. Namun, tidak semua API melaporkan semua atribut kesalahan lainnya.

Informasi tentang kesalahan yang terjadi dalam cakupan blok TRY dari TRY... Konstruksi CATCH dapat diperoleh dalam kode Transact-SQL dengan menggunakan fungsi seperti ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY, dan ERROR_STATE dalam cakupan blok CATCH terkait. Untuk informasi selengkapnya, lihat TRY... CATCH (Transact-SQL).

Contoh

Contoh berikut mengkueri sys.messages tampilan katalog untuk mengembalikan daftar semua pesan kesalahan yang ditentukan sistem dan pengguna di Mesin Database yang memiliki teks bahasa Inggris (1033).

SELECT  
    message_id,  
    language_id,  
    severity,  
    is_event_logged,  
    text  
  FROM sys.messages  
  WHERE language_id = 1033;  

Untuk informasi selengkapnya, lihat sys.messages (Transact-SQL).

Lihat Juga

sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (T-SQL)
MENCOBA... CATCH (Transact-SQL)
ERROR_LINE (T-SQL)
ERROR_MESSAGE (T-SQL)
ERROR_NUMBER (T-SQL)
ERROR_PROCEDURE (T-SQL)
ERROR_SEVERITY (T-SQL)
ERROR_STATE (T-SQL)