goo blog サービス終了のお知らせ 

ぶろぐらまぁの日記

仕事でのTIPSをメモっておきます。
個人的なメモなので、参考にするのは
構いませんが、責任は持ちませんよ。w

一時テーブルの作成とドロップ

2007年06月13日 11時02分45秒 | SQL
(SQL Server)

ストアドやSQLを何度も繰り返して実行するときに、ワークテーブルを消し忘れると、そのテーブルが既に存在するというエラーになる。
毎回、手でDROPするのもめんどうなので、一時テーブルを作り直すには以下のように記述すればいい。
SQLの先頭と一番最後に書いておけばより確実だ。

-- 一時テーブルのドロップ
IF object_id('tempdb..#XXXXXX', 'U') IS NOT NULL
DROP TABLE #XXXXXX

※ここで#XXXXXXはテーブル名をあらわす

ちなみに一時テーブルは、テーブル名の頭に「#」をつけてあげると、SQLServerをインストールすると標準で作られるtempdbインスタンスに勝手に作ってくれる。

-- 一時テーブルの定義
CREATE TABLE #XXXXXX (
[aaa] NVARCHAR(10),
[bbb] NVARCHAR(10),
[ccc] NVARCHAR(10),
:
:
)

これに対し、変数テーブルは「@」をテーブル名につけて、以下のように作るが、変数なのでDROPする必要がない。

-- 変数テーブルの作成
DECLARE @XXXXXX TABLE (
[aaa] NVARCHAR(10),
[bbb] NVARCHAR(10),
[ccc] NVARCHAR(10),
:
:
)