Vous pouvez créez un index non clusterisé comme suit.
DECLARE @t TABLE (
PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
Col1 INT,
Col2 INT,
UNIQUE (Col1, Col2, PK))
Si l'intention est que Col1, Col2
sont uniques eux-mêmes puis supprimez PK
de la liste des colonnes.
Bien qu'il apparaisse à sa valeur nominale comme si cela avait ajouté une colonne supplémentaire dans (PK
) la structure de l'index sera la même que la création d'un index non unique uniquement sur Col1, Col2
sur un #temp
tableau.
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)
pour un index non clusterisé non unique, SQL Server ajoute toujours implicitement la clé CI à la clé NCI. Cela le montre simplement explicitement.
Voir Kalen Delaney En savoir plus sur Clés d'index non clusterisées