Ist es in SQL Server (2008) möglich, eine PRIMARY KEY
für eine Reihe von Spalten ohne CLUSTERED
oder NONCLUSTERED
Indizes für dieselbe Reihe von Spalten zu haben?
Mir ist bewusst, dass PRIMARY KEY
und CLUSTERED INDEX
key getrennte Konzepte sind und dass wir PRIMARY KEY
ohne CLUSTERED INDEX
sie erstellen können (siehe unten).
ALTER TABLE dbo.Sample
ADD CONSTRAINT PK_Sample_SeqGUID_Col1 PRIMARY KEY NONCLUSTERED (SeqGUID_Col1)
Meine Frage ist jedoch, ob es möglich ist, PRIMARY KEY
eine Tabelle ohne CLUSTERED
oder mit einem NONCLUSTERED
Index zu erstellen .
Antworten:
Kurz gesagt, nein. Ein Primärschlüssel erfordert per Definition die Eindeutigkeit. Ein Index für das Primärschlüsselfeld ist der Weg der Datenbankmodule zur Durchsetzung dieser Einschränkung.
Von BOL :
quelle
Nein, eine Primärschlüsseleinschränkung wird in SQL-Server immer durch einen eindeutigen Index erzwungen. Der Index kann gruppiert oder nicht gruppiert sein. Wenn Sie nicht angeben, welcher Typ verwendet werden soll, wird standardmäßig
CLUSTERED
der Primärschlüssel verwendet. Aus der MSDN-DokumentationCREATE TABLE
:quelle