La contrainte Unique sur plusieurs colonnes
CREATE TABLE [dbo].[user](
[userID] [int] IDENTITY(1,1) NOT NULL,
[fcode] [int] NULL,
[scode] [int] NULL,
[dcode] [int] NULL,
[name] [nvarchar](50) NULL,
[address] [nvarchar](50) NULL,
CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED
(
[userID] ASC
)
) ON [PRIMARY]
GO
Comment puis-je ajouter une contrainte unique pour les colonnes fcode, scode, dcode
avec t-sql
et/ou management studio
? fcode, scode, dcode
doit être unique à l'ensemble.
- Est-ce à dire que vous pouvez avoir beaucoup de la même fcode OU scode OU dcode mais jamais deux enregistrements avec le même fcode ET scode ET dcode?
Vous devez vous connecter pour publier un commentaire.
En utilisant la définition de la contrainte sur la création de la table, vous pouvez spécifier une ou plusieurs contraintes qui s'étendent sur plusieurs colonnes. La syntaxe simplifiée de la documentation technet, est dans la forme de:
Par conséquent, la resuting table de définition serait la suivante:
Si la table est déjà créé dans la base de données, vous pouvez ajouter une contrainte unique, plus tard, avec cette requête SQL:
[fcode] ASC, [scode] ASC, [dcode] ASC
?ADD CONSTRAINT ucCodes UNIQUE NONCLUSTERED
?Cela peut aussi être fait dans l'interface graphique. Voici un exemple de l'ajout d'un multi-colonne unique contrainte à une table existante.
Cliquez sur OK dans chaque fenêtre et vous avez terminé.