テーブルが存在したら削除する
Microsoft SQL Serverにてテーブルが存在したら削除するSQLです。
IF OBJECT_ID(N'[dbo].[xxxTBL]', N'U') IS NOT NULL drop table [dbo].[xxxTBL] GO
OBJECT_IDにつて
スキーマ スコープ オブジェクトのデータベース オブジェクト ID 番号を返します。
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] object_name' [ ,'object_type' ] )引数
' object_name '
使用するオブジェクトを指定します。object_name のデータ型は varchar または nvarchar です。object_name のデータ型が varchar の場合、暗黙的に nvarchar に変換されます。データベース名とスキーマ名の指定は省略可能です。' object_type '
http://msdn2.microsoft.com/ja-jp/library/ms190328.aspx
スキーマ スコープのオブジェクトの種類を指定します。object_type のデータ型は varchar または nvarchar です。object_type のデータ型が varchar の場合、暗黙的に nvarchar に変換されます。オブジェクトの種類の一覧については、sys.objects (Transact-SQL) の type 列を参照してください。
Nについて
N プレフィックスの使用
http://msdn2.microsoft.com/ja-jp/library/ms191313.aspx
ストアド プロシージャ内やトリガ内など、サーバーで実行されるコード中の Unicode 文字列定数には、定数の前に大文字の N を付ける必要があります。これは、参照される列が既に Unicode として定義されている場合にも当てはまります。N プレフィックスを付けないと、文字列はデータベースの既定のコード ページに変換されます。このとき、特定の文字は認識されないことがあります。
'U'について
U = テーブル (ユーザー定義)
http://msdn2.microsoft.com/ja-jp/library/ms190324.aspx
IFについて
IF キーワードおよびその条件に続く Transact-SQL ステートメントは、条件が満たされる (ブール式から TRUE が返される) 場合に実行されます。
http://msdn2.microsoft.com/ja-jp/library/ms182717.aspx
GOについて
Transact-SQL ステートメントのバッチの終了を SQL Server ユーティリティに通知します。
http://msdn2.microsoft.com/ja-jp/library/ms188037.aspx