SQL Serverインデックスの命名規則[終了]


175

SQL Serverのインデックスに名前を付ける標準的な方法はありますか?主キーインデックスの名前はPK_で、非クラスター化インデックスは通常IX_で始まるようです。一意のインデックスにそれ以外の命名規則はありますか?

回答:


282

私が使う

主キーのPK_

UK_一意のキー

クラスター化されていない非固有索引の場合はIX_

一意のインデックスの場合はUX_

すべての私のインデックス名は、
<index or key type>_<table name>_<column 1>_<column 2>_<column n>


1
一意でないクラスター化インデックスについてはどうですか?CX?
Chris Marisic

8
一意でないクラスター化インデックスが必要になったことはありません...可能だとは思いますが、それが正しい行動方針であるとは思えませんでした。
JSR

4
ここでの回答によると、stackoverflow.com / questions / 1401572 /… KEYとINDEXは同義語です。それで、一意のキーと一意のインデックスに異なるプレフィックスを付ける必要はないはずですか?
skjerdalas 2014

2
その論理的な違いは、外部キー参照がある場合はUniqueKeyを使用し、そうでない場合はUniqueIndexを使用することです。
JSR

1
2つのテーブルに同じインデックス名を付けることができるのに、なぜテーブル名を含めるのですか?つまり、一意性は必要ありません。
Tahir Hassan

25

通常、インデックスにはテーブルとそれに含まれる列の名前を付けます。

ix_tablename_col1_col2

2
インデックス列と含まれている列をどのように区別しますか?
John Sansom、

3
私は、彼がインデックス付きの列のみを、それらがインデックスに配置されている順にリストしていることを確信しています。
Brett

私はそれを次のように使用します:IX_TableName_col1_col2-includecol1-includecol2
freggel

9

外部キーに関連付けられたインデックスの特別なプレフィックスの価値はありますか?外部キーのインデックスはデフォルトでは作成されないので、欠落しているかどうかを確認しやすいので、そう思います。

このため、外部キーの名前と一致する名前を使用しています。

FK_[table]_[foreign_key_table]

または、同じテーブルに複数の外部キーが存在する場合

FK_[table]_[foreign_key_table]_[foreign_key_field]

1

私は古いトピックを知っていますが、2セントの価値があると思いました

  • PKC_主キー、クラスター化
  • PKNC_主キー、非クラスター化
  • NCAK_非クラスター化、一意
  • CAK_クラスター化、一意
  • NC_非クラスター

例;

NCAK_AccountHeader_OrganisationID_NextDate

ここで、NCAK:非クラスター化、一意、AccountHeader:テーブルとOrganisationID_NextDate:列。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.