SQL Server Index Naming Conventions

Sql ServerNaming ConventionsIndexing

Sql Server Problem Overview


Is there some standard way to name indexes for SQL Server? It seems that the primary key index is named PK_ and non-clustered indexes typically start with IX_. Are there any naming conventions beyond that for unique indexes?

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEric NessView Question on Stackoverflow
Solution 1 - Sql ServerJSRView Answer on Stackoverflow
Solution 2 - Sql ServerMark ByersView Answer on Stackoverflow
Solution 3 - Sql ServerStuart SteedmanView Answer on Stackoverflow
Solution 4 - Sql ServerPixelatedView Answer on Stackoverflow