답변:
한 가지 주요 차이점은 고유 인덱스가 기본 키에서 허용되지 않는 NULL 값을 가질 수 있다는 것입니다. 클러스터링 여부에 관계없이 이는 기본 키의 실제 구현과 고유 키의 주요 차이점입니다.
아, 그리고 테이블이 하나의 PK와 많은 영국을 가질 수 있다는 사실 :-).
이것은 성능이 아닌 INTENT의 차이점입니다. 그렇지 않으면 차이가 없다고 생각합니다. PK 또는 영국 뒤에 SQL Server는 (클러스터링 여부에 따라) 요청에 따라 인덱스를 작성하며 사용 방식은 소스에서 투명합니다.
PRIMARY KEY
와 NOT NULL UNIQUE
, 전자가로 전환하는 것이 훨씬 더 어려울 것이다 NULL UNIQUE
(제약 조건이 이미 외래 키에 의해 참조 된 경우 특히). 에서 실수로 변경을 방지 NOT NULL
할 수 NULL
있습니다.
클러스터 된 기본 키와 고유 한 클러스터형 인덱스 사이에는 고유 한 클러스터형 인덱스가 NULL 값을 가질 수있는 것 외에 다른 것이 없습니다.
고유하지 않은 클러스터형 인덱스에는 고유하지 않은 값을 처리해야하는 고유 식별자가 있습니다.
NOT NULL UNIQUE CLUSTERED
RDMS가 무의식적 임에도 불구하고 메타 데이터의 관점에서 특정 UQ가 "특별"하다는 것을 강조하기 위해 (A)의 별칭으로 또는 (B)를 제외하고 PK를 사용할 이유 가 없습니까?