[SQL Server] 一時テーブル(#Table)にインデックス(index)を作成/設定

inno
2014-01-30 17:45 9949 0
[SQL Server] 一時テーブル(#Table)にインデックス(index)を作成/設定

一時テーブルにインデックスを設定する方法を説明する。
まず一時テーブルを作成しよう。
一時テーブルはテーブル名前に「#」を付けて作成する。
そうするとテーブルは「tempdb」データベースの「一時テーブル」項目に作成される。

CREATE TABLE #TempData
(
Idx int NOT NULL
, StrVal varchar(10) NULL
, RegDate datetime NULL
)

では、Primary key(プライマリーキー)を設定する方法。
ALTER TABLE #TempData ADD PRIMARY KEY CLUSTERED 
(
Idx ASC
)

上記のようにテーブル名とキーにするカラムを設定する。
この際にPrimary key(プライマリーキー)の名は指定しないので、
上記のSQLではPrimary key(プライマリーキー)の名を指定するところがない。
指定しても良いが同時に実行された時にキー名が重複されエラーが発生する可能性があるので、
指定はしないのだ。

では、INDEXを設定する方法。
CREATE NONCLUSTERED INDEX IX_1 ON #TempData
(
StrVal ASC
)

上記のようにindex名を指定して作成する。

追加で「RegDate」カラムまでINDEXを設定するとしたら
下記のように作成する。
CREATE NONCLUSTERED INDEX IX_2 ON #TempData
(
RegDate ASC
)


コメント