(Dit antwoord is alleen voor SQL Server 2005+. Ik weet niets over MySQL.)
Ja. Zoals u al zei, wordt een primaire sleutelbeperking standaard ondersteund door een geclusterde index. U kunt SQL Server vertellen om de beperking te ondersteunen met een niet-geclusterde index door de beperking als volgt te declareren:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);
Ja, u kunt een index definiëren met meer dan één kolom in de indexsleutel. Het is echt niet anders dan een niet-geclusterde index.
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);
Referenties:ALTER TABLE
, CREATE INDEX