Du kan skapa ett icke-klustrat index enligt följande.
DECLARE @t TABLE (
PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
Col1 INT,
Col2 INT,
UNIQUE (Col1, Col2, PK))
Om avsikten är att Col1, Col2
är unika själva, ta sedan bort PK
från kolumnlistan.
Även om det verkar på nominellt värde som om detta har lagt till en extra kolumn i (PK
) indexstrukturen kommer att vara densamma som att skapa ett icke unikt index på bara Col1, Col2
på en #temp
bord.
CREATE TABLE #T (
PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
Col1 INT,
Col2 INT)
/*PK added in to end of key anyway*/
CREATE NONCLUSTERED INDEX ix ON #T(Col1, Col2)
för ett icke unikt icke-klustrat index lägger SQL Server alltid till CI-nyckeln till NCI-nyckeln implicit ändå. Detta visar bara det explicit.
Se Kalen Delaney Mer om Icke-klustrade indexnycklar