SQL Server Index Naming Conventions
Sql ServerNaming ConventionsIndexingSql Server Problem Overview
Is there some standard way to name indexes for SQL Server? It seems that the primary key index is named PK_
Sql Server Solutions
Solution 1 - Sql Server
I use
PK_ for primary keys
UK_ for unique keys
IX_ for non clustered non unique indexes
UX_ for unique indexes
All of my index name take the form of
<index or key type>_<table name>_<column 1>_<column 2>_<column n>
Solution 2 - Sql Server
I usually name indexes by the name of the table and the columns they contain:
ix_tablename_col1_col2
Solution 3 - Sql Server
Is it worth a special prefix for indices associated with foreign keys? I think so, since it reminds me that indices on foreign keys are not created by default, and so it is easier to see if they are missing.
For this, I am using names that match the name of the foreign key:
FK_[table]_[foreign_key_table]
or, where multiple foreign keys exist on the same table
FK_[table]_[foreign_key_table]_[foreign_key_field]
Solution 4 - Sql Server
I know a old topic but thought I'd throw in my 2cents worth
- PKC_ Primary Key, Clustered
- PKNC_ Primary Key, Non Clusterd
- NCAK_ Non Clustered, Unique
- CAK_ Clustered, Unique
- NC_ Non Clustered
Example;
NCAK_AccountHeader_OrganisationID_NextDate
Where NCAK : Non Clustered, Unique, AccountHeader : Table and OrganisationID_NextDate : Columns.