Respuestas:
Una diferencia principal es que el índice único puede tener un valor NULL que no está permitido en la clave primaria. Agrupados o no, esta es la principal diferencia entre la implementación práctica de una Clave primaria frente a una Clave única.
Ah, y el hecho de que una tabla puede tener un PK y muchos UK :-).
Ambas son diferencias en INTENTO, no en RENDIMIENTO. De lo contrario, no creo que haya ninguna diferencia. Detrás de cualquier PK o UK, el SQL Server crea un índice (dependiendo de la solicitud, agrupado o no) y la forma en que se usa es transparente para la fuente de origen.
PRIMARY KEY
y NOT NULL UNIQUE
, el primero sería mucho más difícil de convertir NULL UNIQUE
(particularmente si la restricción ya estaba referenciada por una clave externa). Ciertamente evitaría cambios accidentales de NOT NULL
a NULL
.
Entre una clave primaria en clúster y un índice en clúster único, no hay otra diferencia que el índice en clúster único puede tener un valor NULL.
Un índice agrupado no único tiene un unificador que debe tratarse para valores no únicos.
NOT NULL UNIQUE CLUSTERED
o (B) para resaltar que un UQ particular es "especial" en un sentido de metadatos, a pesar de que el RDMS es agnóstico?