Rechercher : dans
Par :

Trigger SQL, supprimer donnée SI ...

Dernière réponse le 2 déc 2008 à 10:34:13 alexmilano, le 18 avr 2008 à 14:27:12 
 Signaler ce message aux modérateurs

Bonjour,

Je travaille sur une base de données SQL server,
J'ai une table tiers ou j'ai les clients, leurs contacts.
Les clients ont un code_tiers, qui les lie avec leurs contacts avec lien_tiers ( gros : tiers.tiers = tiers.lien_tiers)
J'aimerais faire un trigger qui quand je supprime un tiers il supprime aussi le contact lié ...

aperçu : Code_tiers, désignation

et donc après on a lien_tiers, désignation pour les contacts qui sont pour chaque tiers.

Bon voila, j'ai essayé de m'expliquer au mieux, si vous avez des questions, n'hésitez pas ;)




Windows c'est de la merde ?
alors notre monde est bien po***i, et toi aussi parce que si­ tu es la, c'est grâce à lui !

1

Developpeur_Sensei, le 18 avr 2008 à 16:28:11

Salut
si je comprend bien tu as un problème au niveau de l'intégrité référentielle ; ça veut dire quand tu veux supprimer un client qui a des contact c'est impossible car son "code_tiers" apparait chez ces clients "lien_tiers" alors tu feras un trigger avec "instead of delete" au lieu de "for delete" ou "after delete" comme ceci :
N.B: vaut mieux d'avoir deux tables séparées "Client" et "Contact"
create trigger SupprimerClient
on Client
instead of delete
as
declare @NumClient int
set @NumClient =(select code_tiers from deleted)
delete from Contact where Contact.lien_tiers = @NumClient
delete from Client where Client.code_tiers = @NumClient

N.B : Si tu veux pas faire deux tables tu n'as qu'a remplacer les deux tables "Client" et "Contact" dans mon trigger par le nom de ta table "tiers"
cordialement

Répondre à Developpeur_Sensei

2

alexmilano, le 25 avr 2008 à 11:07:17

C'est bon, j'ai trouver la solution, je mettrai la solution plus tard ;)
Windows c'est de la merde ?
alors notre monde est bien po***i, et toi aussi parce que si­ tu es la, c'est grâce à lui !

Répondre à alexmilano

3

ahmed06424, le 30 jun 2008 à 12:41:28

Il faut dire à celui qui t'as aidé "Merci" et non "C Bon j'ai trouvé la solution" psq je vois qu si tu as trouvé la solution c grace à lui.

Répondre à ahmed06424

4

beuzo, le 6 aoû 2008 à 14:15:04

Met la reponse creuvard

Répondre à beuzo

5

alexmilano, le 5 sep 2008 à 10:30:30

Non, ça m'a pas aider son truc, mais je retrouve plus ou j'ai fait ça, dès que je tombe dessus, je mets la solutiion, et je suis pas un crevard !!!
Windows c'est de la merde ?
alors notre monde est bien po***i, et toi aussi parce que si­ tu es la, c'est grâce à lui !

Répondre à alexmilano

6

toto, le 25 nov 2008 à 21:46:03

Crevard

Répondre à toto

7

 alexmilano, le 2 déc 2008 à 10:34:13

Non mais sérieux, si je la retroyve, je la mets, ça sert à rien de dire crevard ! imbécile !

Si problème tu as, alors solution il y a ...

Répondre à alexmilano
Collection CommentÇaMarche.net