(Този отговор е само за SQL Server 2005+. Не знам нищо за MySQL.)
да. Както споменахте, ограничението на първичния ключ е подкрепено от клъстериран индекс по подразбиране. Можете да кажете на SQL Server да подкрепи ограничението с неклъстериран индекс, като декларирате ограничението, както следва:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);
Да, можете да дефинирате индекс с повече от една колона в ключа на индекса. Наистина не се различава от неклъстериран индекс.
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);
Препратки:ALTER TABLE
, CREATE INDEX