T-SQL - DROP IF EXISTS

先週SQL Server 2016の提供が開始されました。

新機能を調べだしたところですが、まずはとりあえずDROP IF EXISTSを試してみました。

開発中、試行錯誤してたりとかでテーブル構造がなかなか固まらず、テーブルを作っては消してまた作るということを繰り返すことがありました。 私はGUIでテーブルを作らずクエリで作る方で、さらにGUIでテーブルを消すこともめんどくさくて、次のようなクエリをよく書いていました。

-- テーブルが存在していればテーブルを消す
if object_id(N't') is not null
    drop table t;

-- テーブルを作る
create table t(c int);

このテーブルが存在していれば消すということが、 SQL Server 2016からはすっきり書けるようになりました。それがDROP IF EXISTS。

-- テーブルが存在していればテーブルを消す
drop table if exists t;

ぶっちゃけ地味ですがわかりやすいですね。DROP文全般で使えるようですし、ALTER TABLEでカラムを削除するときも使えるみたいです。

参考

次はJSON関係を試してみようかなーと思います。