Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

TRIGGER Sur enfant

5 réponses
Avatar
Gilles
Bonjour ,

Suite à la suppression d'un fiche sur une table parent une contrainte
supprime les fiches enfants associé
Je veux mettre en place un trigger sur la table enfant en suppression

Ce trigger a besoin d'une information de la fiche parent

Question après quelques tests :
Est ce que le trigger sera lancé si je supprime la fiche parent ?
Est ce que la fiche parent sera encore consultable dans mon trigger

Merci de vos réponse

Gilles

5 réponses

Avatar
Gilles
Désolé pour mon premier mail pas très compréhensible et bourré de faute :-)

Je supprime une fiche parent
Cette action lance la suppression des fiches enfants en relation (grace à
une contrainte avec cascade on delete)

Sur cette table enfant, j'ai rajouté un trigger en suppression

Après quelques tests, il passe bien dans mon trigger en suppression.
Si je demande une colonne de mon fichier parent celle ci est renvoyé NULL
Donc fiche parent inexistante !!!!!

Est- ce Normal ???
Comment récupérer les infos du parents supprimé par SQL server ??

Gilles
Avatar
Med Bouchenafa
Nomal,
La vérification de la contrainte passe avant le trigger


--
Bien cordialement
Med Bouchenafa

"Gilles" a écrit dans le message de
news: eYJ%23w%
Désolé pour mon premier mail pas très compréhensible et bourré de faute
:-)

Je supprime une fiche parent
Cette action lance la suppression des fiches enfants en relation (grace à
une contrainte avec cascade on delete)

Sur cette table enfant, j'ai rajouté un trigger en suppression

Après quelques tests, il passe bien dans mon trigger en suppression.
Si je demande une colonne de mon fichier parent celle ci est renvoyé NULL
Donc fiche parent inexistante !!!!!

Est- ce Normal ???
Comment récupérer les infos du parents supprimé par SQL server ??

Gilles



Avatar
Christophe Shaw [MS]
Bnjour,

Le comportement que vous observez est normal puisque vous avez effectivement
supprimé le parent au moment ou le trigger se déclenche. Pour résoudre le
problème, vous pouvez utiliser un trigger sur la table "parent" qui effecera
lui même les données des table "enfant" plutot qu'une contrainte avec delete
cascadé.

Cordialement

Christophe

"Med Bouchenafa" a écrit dans le message de news:

Nomal,
La vérification de la contrainte passe avant le trigger


--
Bien cordialement
Med Bouchenafa

"Gilles" a écrit dans le message de
news: eYJ%23w%
Désolé pour mon premier mail pas très compréhensible et bourré de faute
:-)

Je supprime une fiche parent
Cette action lance la suppression des fiches enfants en relation (grace à
une contrainte avec cascade on delete)

Sur cette table enfant, j'ai rajouté un trigger en suppression

Après quelques tests, il passe bien dans mon trigger en suppression.
Si je demande une colonne de mon fichier parent celle ci est renvoyé NULL
Donc fiche parent inexistante !!!!!

Est- ce Normal ???
Comment récupérer les infos du parents supprimé par SQL server ??

Gilles







Avatar
Jean-Nicolas BERGER
Après tests, la chose passe très bien si le Trigger est défini en INSTEAD OF.
Par contre, ne pas oublier à ce moment-là de mettre dans le trigger un
DELETE de l'enregistrement de la table mère...
Exemple :
CREATE TRIGGER trig_del_parent ON [dbo].[MERE]
INSTEAD OF DELETE
AS
delete ENFANT from ENFANT,DELETED where PARENTÞLETED.IDENTIFIANT
delete MERE from MERE,DELETED where MERE.IDENTIFIANTÞLETED.IDENTIFIANT
Go



"Gilles" wrote:

Désolé pour mon premier mail pas très compréhensible et bourré de faute :-)

Je supprime une fiche parent
Cette action lance la suppression des fiches enfants en relation (grace à
une contrainte avec cascade on delete)

Sur cette table enfant, j'ai rajouté un trigger en suppression

Après quelques tests, il passe bien dans mon trigger en suppression.
Si je demande une colonne de mon fichier parent celle ci est renvoyé NULL
Donc fiche parent inexistante !!!!!

Est- ce Normal ???
Comment récupérer les infos du parents supprimé par SQL server ??

Gilles





Avatar
Gilles
Ouaip !!!

Bref , en suppression de mon parent

1 - il supprime le parent
2 - la contrainte Delete en cascade supprime les enfants

C'est pas logique comme fonctionnement !!!
Si je veut arréter la suppression d'un parent lors de la suppression d'un
enfant comment ça se passe !!!

Quelqu'un connait la raison ?
La seule solution proposée qui conviendrait dans mon cas serais de gérer moi
même la cascade
c'est ballot :-)


Gilles