(Dette svar er kun for SQL Server 2005+. Jeg ved intet om MySQL.)
Ja. Som du nævnte, er en primær nøglebegrænsning som standard understøttet af et klynget indeks. Du kan bede SQL Server om at sikkerhedskopiere begrænsningen med et ikke-klynget indeks ved at erklære begrænsningen som følger:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);
Ja, du kan definere et indeks med mere end én kolonne i indeksnøglen. Det er virkelig ikke anderledes end et ikke-klynget indeks.
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);
Referencer:ALTER TABLE
, CREATE INDEX