patternMinor
Any issue in referencing a unique index from a foreign key table?
Viewed 0 times
uniquereferencinganyissueforeignindexfromtablekey
Problem
Is there any concern in referencing a unique index from a foreign key table?
Using SQL Server 2008 R2
Using SQL Server 2008 R2
Solution
No, a
Copied from MSDN page,
Is a constraint that provides referential integrity for the data in the column or columns.
The only difference between the first (primary key) option and the other two is that unique* constraints and indexes can be defined on nullable columns. Primary key columns have to be
* Note that there are some slight differences between these in SQL-Server (unique indexes offer some options that are not available with unique constraints): When should I use a unique constraint instead of a unique index?
For example, (as @gbn points), a unique index can be partial. But then, it can't be referenced by a FK.
FOREIGN KEY constraint can reference a column combination that is either the PRIMARY KEY or has a UNIQUE constraint or has a UNIQUE INDEX. Copied from MSDN page,
CREATE TABLE:FOREIGN KEY REFERENCESIs a constraint that provides referential integrity for the data in the column or columns.
FOREIGN KEY constraints require that each value in the column exists in the corresponding referenced column or columns in the referenced table. FOREIGN KEY constraints can reference only columns that are PRIMARY KEY or UNIQUE constraints in the referenced table or columns referenced in a UNIQUE INDEX on the referenced table. Foreign keys on computed columns must also be marked PERSISTED.The only difference between the first (primary key) option and the other two is that unique* constraints and indexes can be defined on nullable columns. Primary key columns have to be
NOT NULL. * Note that there are some slight differences between these in SQL-Server (unique indexes offer some options that are not available with unique constraints): When should I use a unique constraint instead of a unique index?
For example, (as @gbn points), a unique index can be partial. But then, it can't be referenced by a FK.
Context
StackExchange Database Administrators Q#34371, answer score: 9
Revisions (0)
No revisions yet.