Bonjour
Est-il possible avec SQL Serveur 2008 de definir une clef unique sur un champ nullable, l'index ne portant donc bien sur que sur les champ non null ?
 Index unique sur champ nullable
 Index unique sur champ nullable
				
				
						
							
							
						
						
				Bonjour
Est-il possible avec SQL Serveur 2008 de definir une clef unique sur un champ nullable, l'index ne portant donc bien sur que sur les champ non null ?
 
 
				
				
						
						
				La réponse est Oui
Depuis SQL Server 2008, il est possible de définir des indexs filtrés.
Une des utilisations des indexes filrés est de créer un index unique sur une colonne nullable.
Exemple :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
 
 
				
				
						
						
				Merci hmira
C'est tout a fait ce que je cherchais.
Sais tu si SSMS permet de le definir en mode GUI ?
 
 
				
				
						
						
							
						
				Oui, il est également possible de créer, sous SSMS, en mode GUI, un index filtré. Pour cela, procédez comme suit:
Dans l'Explorateur d'objetsEt c'est tout ! l'index filtré est ainsi créé.
. Développez la table sur laquelle vous souhaitez créer un index.
Exemple : table dbo.Client
. Cliquez avec le bouton droit sur le dossier Index, puis sélectionnez «Nouvel index»
Dans la page «Général», de la boîte de dialogue «Nouvel index» :
. Saisissez le nom de l'index
Exemple Idx_Client_RefExt
. Sélectionnez «Type Index» «Non cluster»
. Cochez la case «Unique»
. Ajoutez les colonnes de clé d'index
Exemple : Ajout de la colonne RefExt
Dans la page «Filtre» de la boîte de dialogue «Nouvel index» :
. Saisissez l'expression du filtre
Exemple : RefExt IS NOT NULL
Dans la boîte de dialogue «Nouvel index», cliquez sur «OK».
A+
Partager