Bagaimana Cara Menggunakan DROP JIKA ADA di SQL Server?
Artikel ini membahas tentang “JAUH JIKA ADA” pernyataan tersedia di SQL Server 2016 dan versi yang lebih baru. “JIKA KELUAR” adalah klausa opsional terbaru yang ditambahkan dalam pernyataan DROP yang ada di SQL Server 2016 dan versi yang lebih baru. Pada dasarnya, “JAUH JIKA ADA” option digunakan ketika diperlukan untuk memeriksa apakah suatu entitas tetap berada dalam database sebelum dibuat atau dijatuhkan. Dalam hal ini, pertama-tama kita akan menjatuhkan objek database yang ada dan kemudian membuatnya kembali dengan perubahan jika diperlukan.
Dengan demikian, mencegah cara lama penulisan kondisi if dan di dalam kondisi if menulis pernyataan untuk menguji keberadaan objek untuk menjatuhkannya. Jika tidak terjadi, pernyataan berikutnya dalam batch akan terus dieksekusi. Namun jika kita mencoba menjatuhkan objek yang tidak ada maka akan muncul pesan error seperti gambar di bawah ini.
Jalankan kueri berikut.
drop table dbo.company
Outputnya akan seperti ini.
Sintaksis
“DROP object_type [ JIKA ADA ] object_name”
Argumen
OBJECT_TYPE:
Jenis objek bisa siapa saja dari database, pemicu, perakitan, urutan, indeks, tabel, tampilan prosedur, fungsi, dll.
JIKA ADA:
Ini adalah klausa opsional dan jika disebutkan dalam pernyataan DROP, ia akan memeriksa keberadaan objek, jika ada, ia akan dijatuhkan, jika tidak maka akan terus mengeksekusi pernyataan berikutnya di blok tanpa menghasilkan kesalahan.
Sekarang dengan pengenalan metode baru "DROP JIKA ADA" di SQL Server 2016 pengembang dapat menulis kode singkat.
Pertama, buat database bernama "appuals".
Sekarang, kita akan membuat tabel untuk dijatuhkan dengan mengeksekusi kode berikut.
gunakan [appuals] Pergi CREATE TABLE temp ( id INT, nama varchar(100) ); PERGILAH
Outputnya akan seperti berikut.
Selanjutnya, buat prosedur penyimpanan untuk dijatuhkan menggunakan kode berikut.
GUNAKAN [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO Buat PROSEDUR [dbo].[sp_temp] AS BEGIN SET NOCOUNT ON; PILIH * dari dbo.temp; AKHIR
Outputnya akan seperti di bawah ini.
Metode lama: Sebelum SQL Server menggunakan drop if exit pada objek database
Menggunakan metode DROP IF EXISTS sebelum SQL Server 2016 diperlukan penulisan kode pembungkus pernyataan IF yang panjang.
Jatuhkan tabel jika ada
Metode menjatuhkan tabel sebelumnya adalah sebagai berikut.
Jika kita menggunakan SQL Server 2015 atau lebih lama dari itu, kita perlu mengeksekusi sekumpulan kode berikut.
If(OBJECT_ID('dbo.temp') Tidak Null) Jatuhkan Tabel temp
Outputnya akan seperti berikut.
Sekarang sintaksnya cukup membingungkan jadi jika Anda tidak menyukainya dan Anda menggunakan SQL Server 2016 atau lebih tinggi, Anda dapat menggunakan pernyataan DROP IF EXIST sederhana alih-alih pembungkus besar.
Prosedur drop store jika ada:
Untuk menjatuhkan prosedur, kita harus menulis pernyataan bersyarat untuk memeriksa apakah prosedur penyimpanan ada atau tidak, kemudian menulis pernyataan drop. Jika tidak, itu akan menimbulkan kesalahan jika prosedur tersimpan tidak ada.
Sekarang jalankan pernyataan berikut untuk menghapus prosedur dalam versi yang lebih rendah dari SQL Server 2016.
JIKA ADA(PILIH 1 DARI sys.procedures WHERE Name = 'sp_temp') DROP PROCEDURE dbo.sp_temp
Outputnya akan seperti ini.
Jatuhkan basis data jika ada:
Jika Anda menggunakan versi SQL Server sebelumnya, Anda perlu menjalankan kode berikut untuk menghapus database.
JIKA DB_ID('appuals') BUKAN NULL BEGIN DROP DATABASE appuals END
Outputnya akan seperti berikut.
Metode baru: DROP JIKA ADA didukung di SQL Server 2016 dan versi di atasnya
Untuk menjatuhkan objek database di SQL Server 2016 dan di atasnya, kita perlu menjalankan pernyataan sederhana.
Jatuhkan tabel jika ada:
Kita dapat menulis pernyataan seperti di bawah ini di SQL Server 2016 untuk menghapus tabel yang disimpan jika ada.
DROP TABLE JIKA ADA dbo.temp
Outputnya akan seperti ini.
Prosedur drop jika ada:
Sekarang kita akan menghapus prosedur tersimpan yang kita buat di awal artikel dengan mengeksekusi kode berikut.
PROSEDUR DROP JIKA ADA dbo.sp_temp
Outputnya akan seperti di bawah ini.
Sejauh menyangkut sintaks, pernyataan sederhana ini mudah dimengerti dan mudah diingat. Demikian pula, kita dapat mengikuti prosedur yang sama untuk menjatuhkan objek database lainnya.
Jatuhkan basis data jika ada:
Jalankan kode berikut jika Anda ingin menjatuhkan basis data dengan menggunakan centang jika ada
GUNAKAN MASTER GO DROP DATABASE JIKA ADA appuals
Outputnya akan seperti di bawah ini.
Manfaat menggunakan metode ini adalah jika database tidak ada tidak akan menyebabkan kesalahan, pernyataan berikutnya dalam batch akan terus dieksekusi. Mari kita coba untuk menjatuhkan kembali database yang sudah dijatuhkan.
Demikian pula, kita dapat menghapus indeks, tampilan, urutan, rakitan, dll. Dari database.