Bonjour, j'ai le trigger suivant pour la table Issue, sur un update. en gros
ce que je veux que ca fasse c'est ajouter 1 enregistrement dans la table
issue_history lorsqu'un champs est modifié dans la table Issue.
Présentement, j'ai 2 problème que je ne comprends pas.
Problème 1) si je ne change que la date, le champ Changes reste vide (donc
ma variable ne se rempli pas). Mais si je modifie soit que le title, soit le
title et la date, le résultat est correct.
Problème 2) à chaque update, il y a toujours 2 enregistrements qui
s'ajoutent: 1 avec des changements vides et l'autre avec les bons
changements (sauf dans le cas du problème 1). Je voudrait qu'il n'y ait que
celui avec les changements (pas celui qui a les changements vides). Dans les
2 enregistrements, le reste des informations est correct.
Merci de votre aide
ThunderMusic
P.S. Voici le code du trigger
ALTER Trigger dbo.Issue_Update_To_History
On dbo.Issue
For Update
As
declare @Changes nvarchar(255);
declare @NbChanges smallint;
declare @IssueID numeric(9);
set @NbChanges = 0;
if (UPDATE(Title))
begin
set @Changes = N'Title changed';
set @NbChanges = @NbChanges +1;
end
if (UPDATE(Date))
begin
if (@NbChanges > 0)
begin
set @Changes = @Changes + N', ';
end
set @Changes = @Changes + N'Date changed';
set @NbChanges = @NbChanges +1;
end
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
ThunderMusic
Finalement, j'ai reglé mon problème 2 en ajoutant un If (@NbChanges > 0) juste avant le insert dans la table Issue_History. la duplication des enregistrement était du a un autre trigger qui modifie l'enregistrement sur un update.
Alors il reste que le problème 1. Personne a une idée de ce que ca pourrait être?!?
Merci
ThunderMusic
"ThunderMusic" wrote in message news:
Bonjour, j'ai le trigger suivant pour la table Issue, sur un update. en
gros
ce que je veux que ca fasse c'est ajouter 1 enregistrement dans la table issue_history lorsqu'un champs est modifié dans la table Issue. Présentement, j'ai 2 problème que je ne comprends pas.
Problème 1) si je ne change que la date, le champ Changes reste vide (donc ma variable ne se rempli pas). Mais si je modifie soit que le title, soit
le
title et la date, le résultat est correct.
Problème 2) à chaque update, il y a toujours 2 enregistrements qui s'ajoutent: 1 avec des changements vides et l'autre avec les bons changements (sauf dans le cas du problème 1). Je voudrait qu'il n'y ait
que
celui avec les changements (pas celui qui a les changements vides). Dans
les
2 enregistrements, le reste des informations est correct.
Merci de votre aide
ThunderMusic
P.S. Voici le code du trigger
ALTER Trigger dbo.Issue_Update_To_History On dbo.Issue For Update As declare @Changes nvarchar(255); declare @NbChanges smallint; declare @IssueID numeric(9);
set @NbChanges = 0;
if (UPDATE(Title)) begin set @Changes = N'Title changed'; set @NbChanges = @NbChanges +1; end
if (UPDATE(Date)) begin if (@NbChanges > 0) begin set @Changes = @Changes + N', '; end
set @Changes = @Changes + N'Date changed'; set @NbChanges = @NbChanges +1; end
Finalement, j'ai reglé mon problème 2 en ajoutant un If (@NbChanges > 0)
juste avant le insert dans la table Issue_History. la duplication des
enregistrement était du a un autre trigger qui modifie l'enregistrement sur
un update.
Alors il reste que le problème 1. Personne a une idée de ce que ca pourrait
être?!?
Merci
ThunderMusic
"ThunderMusic" <NOdanylat@sympatico.caSPAM> wrote in message
news:uRokgRAGEHA.2600@TK2MSFTNGP12.phx.gbl...
Bonjour, j'ai le trigger suivant pour la table Issue, sur un update. en
gros
ce que je veux que ca fasse c'est ajouter 1 enregistrement dans la table
issue_history lorsqu'un champs est modifié dans la table Issue.
Présentement, j'ai 2 problème que je ne comprends pas.
Problème 1) si je ne change que la date, le champ Changes reste vide (donc
ma variable ne se rempli pas). Mais si je modifie soit que le title, soit
le
title et la date, le résultat est correct.
Problème 2) à chaque update, il y a toujours 2 enregistrements qui
s'ajoutent: 1 avec des changements vides et l'autre avec les bons
changements (sauf dans le cas du problème 1). Je voudrait qu'il n'y ait
que
celui avec les changements (pas celui qui a les changements vides). Dans
les
2 enregistrements, le reste des informations est correct.
Merci de votre aide
ThunderMusic
P.S. Voici le code du trigger
ALTER Trigger dbo.Issue_Update_To_History
On dbo.Issue
For Update
As
declare @Changes nvarchar(255);
declare @NbChanges smallint;
declare @IssueID numeric(9);
set @NbChanges = 0;
if (UPDATE(Title))
begin
set @Changes = N'Title changed';
set @NbChanges = @NbChanges +1;
end
if (UPDATE(Date))
begin
if (@NbChanges > 0)
begin
set @Changes = @Changes + N', ';
end
set @Changes = @Changes + N'Date changed';
set @NbChanges = @NbChanges +1;
end
Finalement, j'ai reglé mon problème 2 en ajoutant un If (@NbChanges > 0) juste avant le insert dans la table Issue_History. la duplication des enregistrement était du a un autre trigger qui modifie l'enregistrement sur un update.
Alors il reste que le problème 1. Personne a une idée de ce que ca pourrait être?!?
Merci
ThunderMusic
"ThunderMusic" wrote in message news:
Bonjour, j'ai le trigger suivant pour la table Issue, sur un update. en
gros
ce que je veux que ca fasse c'est ajouter 1 enregistrement dans la table issue_history lorsqu'un champs est modifié dans la table Issue. Présentement, j'ai 2 problème que je ne comprends pas.
Problème 1) si je ne change que la date, le champ Changes reste vide (donc ma variable ne se rempli pas). Mais si je modifie soit que le title, soit
le
title et la date, le résultat est correct.
Problème 2) à chaque update, il y a toujours 2 enregistrements qui s'ajoutent: 1 avec des changements vides et l'autre avec les bons changements (sauf dans le cas du problème 1). Je voudrait qu'il n'y ait
que
celui avec les changements (pas celui qui a les changements vides). Dans
les
2 enregistrements, le reste des informations est correct.
Merci de votre aide
ThunderMusic
P.S. Voici le code du trigger
ALTER Trigger dbo.Issue_Update_To_History On dbo.Issue For Update As declare @Changes nvarchar(255); declare @NbChanges smallint; declare @IssueID numeric(9);
set @NbChanges = 0;
if (UPDATE(Title)) begin set @Changes = N'Title changed'; set @NbChanges = @NbChanges +1; end
if (UPDATE(Date)) begin if (@NbChanges > 0) begin set @Changes = @Changes + N', '; end
set @Changes = @Changes + N'Date changed'; set @NbChanges = @NbChanges +1; end