Trigger SQL, supprimer donnée SI ...
alexmilano
Messages postés
445
Statut
Membre
-
titi -
titi -
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 !
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 !
A voir également:
- Trigger SQL, supprimer donnée SI ...
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Supprimer les données de navigation - Guide
- Fichier impossible à supprimer - Guide
4 réponses
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
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