Internet

Panduan Langkah-demi-Langkah Menggunakan TRY / CATCH untuk Menangani Kesalahan SQL Server

Pengarang: Laura McKinney
Tanggal Pembuatan: 2 April 2021
Tanggal Pembaruan: 9 Boleh 2024
Anonim
SQL Server DBA Tutorial 164-How to Resolve Availability Group Listner Errors in SQL Server
Video: SQL Server DBA Tutorial 164-How to Resolve Availability Group Listner Errors in SQL Server

Isi

Identifikasi kesalahan tanpa mengganggu eksekusi

Pernyataan TRY / CATCH dalam Transact-SQL mendeteksi dan menangani kondisi kesalahan dalam aplikasi database. Pernyataan ini adalah landasan penanganan kesalahan SQL Server dan merupakan bagian penting dari pengembangan aplikasi database yang kuat.

TRY / CATCH berlaku untuk SQL Server mulai tahun 2008, Azure SQL Database, Azure SQL Data Warehouse, dan Parallel Data Warehouse.

Memperkenalkan TRY / CATCH

TRY./CATCH bekerja dengan menentukan dua pernyataan Transact-SQL: satu yang ingin Anda "coba" dan yang lain untuk "menangkap" kesalahan yang mungkin timbul. Ketika SQL Server menemukan pernyataan TRY / CATCH, ia segera menjalankan pernyataan yang termasuk dalam klausa TRY. Jika pernyataan TRY dijalankan dengan sukses, SQL Server bergerak. Namun, jika pernyataan TRY menghasilkan kesalahan, SQL Server mengeksekusi pernyataan CATCH untuk menangani kesalahan dengan anggun.


Sintaks dasar mengambil bentuk ini:

BEGIN COBALAH
sql_statement
AKHIR MENCOBA
BEGIN CATCH
[sql_statement]
END CATCH
[ ; ]

COBALAH / CATCH Contoh

Pertimbangkan database sumber daya manusia yang berisi tabel bernama para karyawan, yang berisi informasi tentang masing-masing karyawan di suatu perusahaan. Tabel itu menggunakan nomor ID karyawan integer sebagai kunci utama.

Anda mungkin mencoba menggunakan pernyataan di bawah ini untuk memasukkan karyawan baru ke dalam basis data Anda:

INSERT INTO karyawan (id, first_name, last_name, ekstensi)
VALUES (12497, 'Mike', 'Chapple', 4201)

Dalam keadaan normal, pernyataan ini akan menambahkan baris ke tabel Karyawan. Namun, jika seorang karyawan dengan ID 12497 sudah ada di database, memasukkan baris akan melanggar batasan kunci utama dan menghasilkan kesalahan berikut:

Msg 2627, Level 14, Negara 1, Baris 1
Pelanggaran batasan utama PRIMARY 'PK_employee_id'. Tidak dapat memasukkan kunci duplikat di objek 'dbo.employees'.
Pernyataan itu telah dihentikan.

Meskipun kesalahan ini memberi Anda informasi yang Anda butuhkan untuk memecahkan masalah, ada dua masalah dengannya. Pertama, pesannya samar. Ini termasuk kode kesalahan, nomor baris dan informasi lain yang tidak dapat dipahami oleh pengguna rata-rata. Kedua, dan yang lebih penting, itu menyebabkan pernyataan dibatalkan dan dapat menyebabkan aplikasi crash.


Alternatifnya adalah dengan membungkus pernyataan dalam pernyataan COC… CATCH, seperti yang ditunjukkan di sini:

BEGIN COBALAH
INSERT INTO karyawan (id, first_name, last_name, ekstensi)
VALUES (12497, 'Mike', 'Chapple', 4201)
AKHIR MENCOBA
BEGIN CATCH
PRINT 'ERROR:' + ERROR_MESSAGE ();
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Surat Karyawan',
@penerima = '[email protected]',
@body = 'Terjadi kesalahan saat membuat catatan karyawan baru.',
@subject = 'Kesalahan Basis Data Karyawan';
END CATCH

Dalam contoh ini, setiap kesalahan yang terjadi dilaporkan kepada pengguna yang menjalankan perintah dan alamat email [email protected]. Kesalahan yang ditampilkan kepada pengguna adalah:

Galat: Pelanggaran batasan PRIMARY KUNCI 'PK_employee_id'.
Tidak dapat memasukkan kunci duplikat di objek 'dbo.employees'.
Mail diantrekan.

Eksekusi aplikasi berlanjut secara normal, memungkinkan programmer untuk menangani kesalahan. Penggunaan pernyataan TRY / CATCH adalah cara yang elegan untuk secara proaktif mendeteksi dan menangani kesalahan yang terjadi dalam aplikasi database SQL Server.



Belajar Lebih Banyak

Untuk mempelajari lebih lanjut tentang Bahasa Permintaan Terstruktur, lihat artikel kami Pengantar SQL.

Mendapatkan Popularitas

Baca Hari Ini

Cara Menggunakan Spotify Web Player
Judi

Cara Menggunakan Spotify Web Player

Jika Anda ingin mengurangi jumlah aplikai yang Anda intal di PC Anda, menggunakan potify Web Player di brower Anda adalah olui yang mudah. Anda akan melihat angat edikit perbedaan antara pemutar web ...
Apa Itu Seri Web? Apakah Mereka Layak Ditonton?
Internet

Apa Itu Seri Web? Apakah Mereka Layak Ditonton?

erial web dirancang eperti erial televii - melalui erangkaian epiode - kecuali erial itu ditonton di web. Dan ementara erial TV biaanya membutuhkan biaya produki bear, bintang TV elebriti, dan peruah...