Créer une contrainte d'unicité sur plusieurs champs.

sithiar Messages postés 3 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 novembre 2008 - 24 nov. 2008 à 11:26
themessenger Messages postés 45 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 5 janvier 2009 - 27 nov. 2008 à 15:40
Bonjour,

Pour des contraintes opérationelles, je doit remplacer une primary key composée de trois champs, par une simple PK Système, et rendre l'ancienne combinaison unique.
Je cherche donc à créer une contrainte d'unicité sur une combinaison de trois champs : exemple :

Ancien :
#PK_FK_USERID (int)
#PK_FK_LANGCODE (varchar(2))
#PK_FK_MENUENTRY (int)
traduction (varchar(255))

Nouveau :
#PK_MenuAuthLang (int, identity)
FK_USERID* (int)

FK_LANGCODE* (varchar(2))

FK_MENUENTRY* (int)
traduction (varchar(255))

* : contrainte d'unicité.
# : primary key

Est-ce possible ? et quelle est la syntaxe à utiliser ? Je n'ai rien trouvé sur la msdn qui l'infirme, ou le confirme.
Merci pour votre aide.

1 réponse

themessenger Messages postés 45 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 5 janvier 2009
27 nov. 2008 à 15:40
Bonjour ,
Je crois si tu fait un alter table avec une contrainte UNIQUE tu peut y arriver

exemple :

ALTER TABLE (le nom de ta table)  WITH NOCHECK ADD
CONSTRAINT (ta contrainte)  UNIQUE
{

FK_USERID (int),
FK_LANGCODE (varchar(2)),
FK_MENUENTRY (int)

}

Bonne chance
    

"Some men see things are they are and say WHY ? I dream of things that never were and I say WHY NOT ?"
0
Rejoignez-nous