voici mon trigger pour mettre =E0 jour deux tables, pour que=20
lorsque un matricule est supprim=E9 sur une table qu'il le=20
soit aussi dans l'autre.
CREATE TRIGGER dbo.DELPersonnel
ON dbo.GenPersonnel
FOR DELETE
AS
DELETE FROM InfoPersonnel
WHERE InfoPersonnel.Matricule =3D (SELECT=20
InfoPersonnel.Matricule FROM InfoPersonnel=20
WHERE InfoPersonnel.Matricule NOT IN (SELECT=20
GenPersonnel.Matricule FROM GenPersonnel))
GO
Il fonctionne sans probl=E8me quand on travaille ligne =E0=20
ligne. Mais il ne fonctionne plus en requete du type
DELETE FROM GenPersonnel
Il renvoie l'erreur suivante
La sous-requ=EAte a retourn=E9 plusieurs valeurs. Cela n'est=20
pas autoris=E9 quand la sous-requ=EAte suit =3D, !=3D, <, <=3D , >,=20
>=3D ou quand elle est utilis=E9e en tant qu'expression.
L'instruction a =E9t=E9 arr=EAt=E9e.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
VUILLERMET Jacques
Remplace "=" par "IN".
jv
"guillard" a écrit dans le message de news: 0ca101c35b4f$1c7c2d70$ voici mon trigger pour mettre à jour deux tables, pour que lorsque un matricule est supprimé sur une table qu'il le soit aussi dans l'autre.
CREATE TRIGGER dbo.DELPersonnel ON dbo.GenPersonnel FOR DELETE AS
DELETE FROM InfoPersonnel WHERE InfoPersonnel.Matricule = (SELECT InfoPersonnel.Matricule FROM InfoPersonnel WHERE InfoPersonnel.Matricule NOT IN (SELECT GenPersonnel.Matricule FROM GenPersonnel)) GO
Il fonctionne sans problème quand on travaille ligne à ligne. Mais il ne fonctionne plus en requete du type DELETE FROM GenPersonnel Il renvoie l'erreur suivante La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >,
= ou quand elle est utilisée en tant qu'expression.
L'instruction a été arrêtée.
Merci pour votre aide
Remplace "=" par "IN".
jv
"guillard" <guillard@fransbonhomme.fr> a écrit dans le message de news:
0ca101c35b4f$1c7c2d70$a101280a@phx.gbl...
voici mon trigger pour mettre à jour deux tables, pour que
lorsque un matricule est supprimé sur une table qu'il le
soit aussi dans l'autre.
CREATE TRIGGER dbo.DELPersonnel
ON dbo.GenPersonnel
FOR DELETE
AS
DELETE FROM InfoPersonnel
WHERE InfoPersonnel.Matricule = (SELECT
InfoPersonnel.Matricule FROM InfoPersonnel
WHERE InfoPersonnel.Matricule NOT IN (SELECT
GenPersonnel.Matricule FROM GenPersonnel))
GO
Il fonctionne sans problème quand on travaille ligne à
ligne. Mais il ne fonctionne plus en requete du type
DELETE FROM GenPersonnel
Il renvoie l'erreur suivante
La sous-requête a retourné plusieurs valeurs. Cela n'est
pas autorisé quand la sous-requête suit =, !=, <, <= , >,
= ou quand elle est utilisée en tant qu'expression.
"guillard" a écrit dans le message de news: 0ca101c35b4f$1c7c2d70$ voici mon trigger pour mettre à jour deux tables, pour que lorsque un matricule est supprimé sur une table qu'il le soit aussi dans l'autre.
CREATE TRIGGER dbo.DELPersonnel ON dbo.GenPersonnel FOR DELETE AS
DELETE FROM InfoPersonnel WHERE InfoPersonnel.Matricule = (SELECT InfoPersonnel.Matricule FROM InfoPersonnel WHERE InfoPersonnel.Matricule NOT IN (SELECT GenPersonnel.Matricule FROM GenPersonnel)) GO
Il fonctionne sans problème quand on travaille ligne à ligne. Mais il ne fonctionne plus en requete du type DELETE FROM GenPersonnel Il renvoie l'erreur suivante La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >,
= ou quand elle est utilisée en tant qu'expression.