[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
)