0

Je souhaite créer un index non clusterisé mais unique sur deux colonnes. Je essayé:Comment créer UN INDEX NON CLUSTERED UNIQUE avec Fluent NHibernate

Map(x => x.Col1).Index("IX").UniqueKey("IX"); 
Map(x => x.Col2).Index("IX").UniqueKey("IX"); 

et obtenu index non unique et contrainte supplémentaire unique (ordre de commutation ne permet pas),

ou:

Map(x => x.Col1).Index("IX").Unique(); 
Map(x => x.Col1).Index("IX").Unique(); 

et obtenu index non unique et 2 contraintes uniques supplémentaires (l'ordre de commutation n'aide pas).

Existe-t-il un moyen de créer uniquement l'index, mais unique?

Répondre

2

Si je quitte le .Index() et juste écrire

Map(x => x.Col1).UniqueKey("IX"); 
Map(x => x.Col2).UniqueKey("IX"); 

je reçois un index non cluster unique dans SQL Server 2008 Express (R2) sans contraintes supplémentaires. (Au moins, cela s'affiche lorsque je vois les porperties dans le SQL Management Studio.)

+0

Merci. Cela génère un script SQL différent, mais le résultat est presque "identique". Vous obtenez une contrainte unique et un index unique supplémentaire, au lieu d'un index unique. Plus d'infos dans cette [question] (http://stackoverflow.com/questions/3978680/constraint-is-key-is-index-is-constraint) – eitanpo

Questions connexes