小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

テーブルが存在したら削除する

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 '
スキーマ スコープのオブジェクトの種類を指定します。object_type のデータ型は varchar または nvarchar です。object_type のデータ型が varchar の場合、暗黙的に nvarchar に変換されます。オブジェクトの種類の一覧については、sys.objects (Transact-SQL) の type 列を参照してください。

http://msdn2.microsoft.com/ja-jp/library/ms190328.aspx

Nについて

N プレフィックスの使用
ストアド プロシージャ内やトリガ内など、サーバーで実行されるコード中の Unicode 文字列定数には、定数の前に大文字の N を付ける必要があります。これは、参照される列が既に Unicode として定義されている場合にも当てはまります。N プレフィックスを付けないと、文字列はデータベースの既定のコード ページに変換されます。このとき、特定の文字は認識されないことがあります。

http://msdn2.microsoft.com/ja-jp/library/ms191313.aspx

'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