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

Messages postés
3
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
24 novembre 2008
-
Messages postés
45
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
5 janvier 2009
-
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

Messages postés
45
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
5 janvier 2009

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 ?"