Můžete vytvořte index bez clusterů následovně.
DECLARE @t TABLE (
PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
Col1 INT,
Col2 INT,
UNIQUE (Col1, Col2, PK))
Pokud je záměrem, že Col1, Col2
jsou samy o sobě jedinečné, pak odstraňte PK
ze seznamu sloupců.
Ačkoli to vypadá na nominální hodnotu, jako by to přidalo další sloupec v (PK
) struktura indexu bude stejná jako při vytváření nejedinečného indexu pouze na Col1, Col2
na #temp
tabulka.
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)
pro nejedinečný index bez clusterů SQL Server vždy stejně implicitně přidá klíč CI do klíče NCI. To to jen explicitně ukazuje.
Viz Kalen Delaney Více o Neklastrované indexové klíče