回答:
主な違いの1つは、一意キーの主キーで許可されていないNULL値を使用できることです。クラスター化されているかどうかにかかわらず、これは主キーと一意キーの実際の実装の主な違いです。
ああ、テーブルには1つのPKと多くの英国を含めることができます:-)
これらは両方ともパフォーマンスではなくINTENTの違いです。それ以外の場合、違いはないと思います。PKまたはUKの背後では、SQL Serverはインデックスを作成し(要求に応じて、クラスター化されているかどうかに関係なく)、その使用方法はソースの透過性です。
PRIMARY KEY
とNOT NULL UNIQUE
、前者はに変身するためにはるかに困難になりますNULL UNIQUE
(制約がすでに外部キーによって参照された場合は特に)。NOT NULL
への偶発的な変更を確実に防止しNULL
ます。
クラスター化されたプライマリキーと一意のクラスター化インデックスの間には、一意のクラスター化インデックスがNULL値を持つことができる以外に違いはありません。
一意でないクラスター化インデックスには、一意でない値に対して処理する必要がある一意識別子があります。
NOT NULL UNIQUE CLUSTERED
または(B)RDMSが不可知であるにもかかわらず、特定のUQがメタデータの意味で「特別」であることを強調するために、PKを使用する理由はありませんか?