【SQL Server/IF EXISTS】テーブルが存在している場合、テーブルを削除する

DROP TABLE IF EXISTS テーブル名」という簡易な記述で、
「テーブルが存在している場合、テーブルを削除する」
ことができます!

この簡易な記述方法は、2016バージョンから

提供されました!

2016バージョン以前はIF文とOBJECT_ID関数を組み合わせて、
同様のことを実現していました!

PR

準備

以下のSQLを実行し、テーブルの作成をします。

--テーブルの作成
CREATE TABLE sampleTable
(
 id CHAR(3) PRIMARY KEY,
)

SELECT * FROM sampleTable
テーブルの作成
テーブルの作成
PR

SQL

ここでは例として、
 ・上記で作成したテーブル「sampleTable」が
 ・存在する場合は削除
します。

--テーブル「sampleTable」が存在する場合は削除
DROP TABLE IF EXISTS sampleTable
DROP TABLE IF文
DROP TABLE IF文
PR

実行結果

当該テーブルが削除されていること(存在しないこと)を確認します。

--当該テーブルが削除されていること(存在しないこと)を確認
SELECT * FROM sampleTable
テーブル削除確認

 

当該テーブルが存在しない場合は、何も行われずに正常終了します。
※つまりエラーは発生しません。

「DROP PROCEDURE IF EXISTS プロシージャ名」等とすれば、
プロシージャ等でも同様のことができます!

「IF EXISTS」はテーブルやプロシージャだけでなく
 ・全てのDROP文で使用可能
です!

タイトルとURLをコピーしました