Menjatuhkan tabel dalam SQL dengan mudah. Anda cukup menggunakan DROP TABLE myTable
di mana myTable
adalah nama tabel yang ingin Anda jatuhkan. Anda dapat menggunakan metode ini untuk meletakkan tabel di SQL Server melalui skrip T-SQL.
Tetapi Anda akan mendapatkan kesalahan jika tabel tidak benar-benar ada. Yaitu, kecuali Anda memeriksa keberadaan tabel terlebih dahulu.
Berikut adalah empat cara menggunakan T-SQL untuk memeriksa apakah tabel sudah ada sebelum dihapus.
Opsi 1:IF EXISTS
Klausa
Saat menggunakan SQL Server 2016 atau yang lebih baru, kita dapat menggunakan IF EXISTS
klausa dari DROP TABLE
pernyataan untuk memeriksa keberadaan tabel sebelum kita mencoba menjatuhkannya:
DROP TABLE IF EXISTS t1;
Ini menjatuhkan tabel bernama t1
jika ada.
Inilah hasil menjalankan pernyataan di atas ketika tabel memang ada (dan karena itu dihapus):
Commands completed successfully.
Dan inilah yang kami dapatkan jika kami segera menjalankan pernyataan lagi (yaitu ketika tabel tidak ada):
Commands completed successfully.
Keluaran yang sama. Jadi pernyataan berjalan dengan sukses apakah tabel ada atau tidak.
Inilah yang terjadi jika kita mencoba menjatuhkan tabel tanpa menggunakan IF EXISTS
klausa:
DROP TABLE t1;
Hasil:
Msg 3701, Level 11, State 5, Line 1 Cannot drop the table 't1', because it does not exist or you do not have permission.
Opsi 2:Periksa ID Objek
Sebagai alternatif, kita dapat menggunakan OBJECT_ID()
fungsi untuk memeriksa keberadaan tabel sebelum kita mencoba untuk menjatuhkannya:
IF OBJECT_ID(N'dbo.t1', N'U') IS NOT NULL
DROP TABLE dbo.t1;
GO
Contoh di atas memeriksa ID objek untuk dbo.t1
meja. Argumen kedua untuk OBJECT_ID()
menentukan jenis objek yang kita cari. Dalam hal ini kami menggunakan U
, yang untuk “tabel yang ditentukan pengguna”.
OBJECT_ID()
mengembalikan nomor identifikasi objek database dari objek cakupan skema. Jika objek ada, itu tidak akan mengembalikan NULL, dan oleh karena itu, kita bisa menjatuhkan tabel. Jika objek tidak ada, atau jika Anda tidak memiliki akses ke sana, fungsi mengembalikan NULL, dan DROP TABLE
pernyataan tidak akan berjalan.
Opsi 3:Kueri information_schema.tables
Cara lain untuk memeriksa apakah tabel sudah ada adalah dengan menanyakan information_schema.tables
lihat:
IF EXISTS (
SELECT * FROM information_schema.tables
WHERE table_schema = 'dbo' AND table_name = 't1')
DROP TABLE dbo.t1;
Itu melakukan hal yang mirip dengan contoh sebelumnya; ia memeriksa keberadaan tabel dan membuatnya hanya jika tidak ada.
Opsi 4:Kueri sys.tables
Kami juga dapat menanyakan sys.tables
tampilan katalog sistem:
IF EXISTS (
SELECT * FROM sys.tables t
JOIN sys.schemas s ON (t.schema_id = s.schema_id)
WHERE s.name = 'dbo' AND t.name = 't1')
DROP TABLE dbo.t1;
SQL Server menyediakan banyak cara lain untuk memeriksa keberadaan tabel. Lihat 6 Cara untuk Memeriksa apakah Tabel Ada di SQL Server sebagai contoh.