(Câu trả lời này chỉ dành cho SQL Server 2005+. Tôi không biết gì về MySQL.)
Đúng. Như bạn đã đề cập, một ràng buộc khóa chính được hỗ trợ bởi một chỉ mục nhóm theo mặc định. Bạn có thể yêu cầu SQL Server sao lưu ràng buộc bằng một chỉ mục không phân biệt bằng cách khai báo ràng buộc như sau:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);
Có, bạn có thể xác định một chỉ mục với nhiều hơn một cột trong khóa chỉ mục. Nó thực sự không khác gì một chỉ mục không hợp nhất.
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);
Tài liệu tham khảo: ALTER TABLE
, CREATE INDEX