Condition sur insertion

cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010 - 17 juil. 2006 à 17:36
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010 - 18 août 2006 à 15:55
Bonjour à tous!

J'utilise SqlServer 2000. J'ai une table avec plusieurs champ. Lorsqu'un utilisateur veut inserer un nouvel enregistrements je dois verifier si l'enregistrement n'est pas existant. Un genre de IF Exists (select * from tb Where PKID <> ChampInsertition AND FKTYPE <> ChampInsertition AND STATE = 1)

Que dois-je utiliser. est-ce que c'est fesable avec les contrainte ? Est-ce que c'est possible de declarer un trigger et de faire un RollBack si la condition n'est pas respecter?

[s]Myke/s

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 juil. 2006 à 00:10
Salut

Ton probleme peut etre resolu avec des contraintes
si tu mets une contrainte unqiue sur ton les champs
(sauf la clef qui est en general unqiue par def ou autogenere)

Tu aurais une exception de violationd de contraintes uniques.

Je ne pense pas que ce type de solution.
Soit tres recommandé mais elle a le mérite d'exister.

Et a toi de l'adpater pour tes tables
car dans une table personne
il ne faut pas la mettre en place si tu ne conserve que le nom prenom
car il y a risque d'homonymie.

De plus contrainte unique index je crois.
> pb de perf

La construction
http://groups.google.fr/group/microsoft.public.fr.access/browse_thread/thread/a1ac33ab15a83849/b2020aa38df07d5d?lnk=st&q=constraint+unique+sql+server+colonnes&rnum=5&hl=fr#b2020aa38df07d5d


Des specialistes en architecture de BDD, pourront compléter ce message ;-)


Voila
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 juil. 2006 à 00:12
Excuse j'avais pas vu la base de données

Voila un lien meilleur
http://www.linux-france.org/article/serveur/psql/Postgres-7.2/r15876.html
0
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
18 juil. 2006 à 01:23
Je ne peux pas mettre de clé primaire sur ce champ. Car les enregistrements doivent rester dans la base de données lorsqu'il y a  suppression. C'est seulement le champ State qui nous indique si l'enregistrement est valide. Ce que je voudrais c'est ajouter une contrainte ou n'importe qu'elle autre solution qui me permettrais de tester des conditions avant que le champ soit inserer.

[s]Myke/s
0
crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
17 août 2006 à 21:24
crilun
ce que tu veut faire en fete c'est ajouter l'enregistrement a state=0 si il existe deja dasn la base et a state=1 sinon c'est bien ca?
si c'est bien ca oui c'est faisable avec un trigger, j'ai eu le meme genre de chose a faire avec un gestion de bagde ou seul un seul badge pour une meme personne devait rester actif,
tu peut récuperer tes valeurs au moment de l'insertion grace au trigger et les modifier donc oui tu peut le faire avec un trigger.
si c'est effectivement ca que tu veut veut faire tiens moi au courant je te taperais donnerias un exmple de trigger qui fait , la j'ai pas de base SQL server je peut pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
18 août 2006 à 15:55
Salut crilun

J'ai effectivement resolu le problème avec un trigger

Myke
0
Rejoignez-nous