(Diese Antwort gilt nur für SQL Server 2005+. Ich weiß nichts über MySQL.)
Ja. Wie Sie bereits erwähnt haben, wird eine Primärschlüsseleinschränkung standardmäßig durch einen gruppierten Index unterstützt. Sie können SQL Server anweisen, die Einschränkung mit einem nicht gruppierten Index zu unterstützen, indem Sie die Einschränkung wie folgt deklarieren:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);
Ja, Sie können einen Index mit mehr als einer Spalte im Indexschlüssel definieren. Es ist wirklich nicht anders als ein Nonclustered-Index.
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);
Referenzen:ALTER TABLE
, CREATE INDEX