Ответы:
Основное отличие состоит в том, что уникальный индекс может иметь значение NULL, которое не допускается в первичном ключе. Кластеризовано или нет, это главное отличие между практической реализацией первичного ключа и уникального ключа.
Да, и тот факт, что таблица может иметь один ПК и много Великобритании :-).
Это оба различия в НАМЕРЕНИИ, а не в РАБОТЕ. В противном случае, я не думаю, что есть какая-либо разница. За любым PK или UK SQL Server строит индекс (в зависимости от запроса, кластеризованный или нет), и способ его использования прозрачен для источника.
PRIMARY KEY
и NOT NULL UNIQUE
первым будет гораздо труднее превратиться NULL UNIQUE
(особенно если на ограничение уже ссылался внешний ключ). Конечно, предотвратит случайные изменения от NOT NULL
до NULL
.
Между кластеризованным первичным ключом и уникальным кластеризованным индексом нет ничего другого, кроме того, что уникальный кластеризованный индекс может иметь значение NULL.
Неуникальный кластеризованный индекс имеет уникальный идентификатор, с которым необходимо работать для неуникальных значений.
NOT NULL UNIQUE CLUSTERED
или (B), чтобы подчеркнуть, что конкретный UQ является «особенным» в смысле метаданных, даже если RDMS является агностиком?