Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur avant
et après la modification ? J'en aurais besoin pour mettre à jour des tables
qui en utilisent la valeur.
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
Philippe Bouchardy
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news:
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur avant et après la modification ? J'en aurais besoin pour mettre à jour des tables qui en utilisent la valeur.
Merci.
-- Patrick
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à
récupérer les données avant et après leurs modifications, prenons pour
exemple la table suivante :
Customers :
customerId : int
businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et
les nouvelles valeurs
create trigger trg_before_update
on dbo.Customers
for update as
if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les
données
declare @old_businessName varchar(50), @new_businessName varchar(50)
begin
-- récupération de l'ancienne valeur
select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur
select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3'
-- ici on affiche juste le contenu de nos variables pour tester
print 'old : ' + @old_businessName
print 'new: ' + @new_businessName
end
Cordialement,
Philippe
"Patrick" <no.spam.patrick.fredin@iquebec.com> wrote in message
news:236405BB-45BD-4E3D-9F4D-4B9CAC2A9493@microsoft.com...
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur
avant
et après la modification ? J'en aurais besoin pour mettre à jour des
tables
qui en utilisent la valeur.
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news:
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur avant et après la modification ? J'en aurais besoin pour mettre à jour des tables qui en utilisent la valeur.
Merci.
-- Patrick
Patrick
Merci beaucoup. C'est parfait.
-- Patrick
"Philippe Bouchardy" wrote:
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news: > Bonjour, > > Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur > avant > et après la modification ? J'en aurais besoin pour mettre à jour des > tables > qui en utilisent la valeur. > > Merci. > > -- > Patrick
Merci beaucoup. C'est parfait.
--
Patrick
"Philippe Bouchardy" wrote:
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à
récupérer les données avant et après leurs modifications, prenons pour
exemple la table suivante :
Customers :
customerId : int
businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et
les nouvelles valeurs
create trigger trg_before_update
on dbo.Customers
for update as
if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les
données
declare @old_businessName varchar(50), @new_businessName varchar(50)
begin
-- récupération de l'ancienne valeur
select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur
select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3'
-- ici on affiche juste le contenu de nos variables pour tester
print 'old : ' + @old_businessName
print 'new: ' + @new_businessName
end
Cordialement,
Philippe
"Patrick" <no.spam.patrick.fredin@iquebec.com> wrote in message
news:236405BB-45BD-4E3D-9F4D-4B9CAC2A9493@microsoft.com...
> Bonjour,
>
> Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur
> avant
> et après la modification ? J'en aurais besoin pour mettre à jour des
> tables
> qui en utilisent la valeur.
>
> Merci.
>
> --
> Patrick
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news: > Bonjour, > > Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur > avant > et après la modification ? J'en aurais besoin pour mettre à jour des > tables > qui en utilisent la valeur. > > Merci. > > -- > Patrick
Fred BROUARD
Bonjour,
votre code dans le trigger est incorrect car il suppose qu'une seule ligne ne sera jamais UPDATée à la fois ce qui est faux car un trigger SQL Server est toujours ensembliste. Dans le code d'un trigger ne devrait donc jamais figurer des variables sauf à utiliser un curseur pour lires les lignes des pseudo tables inserted et deleted.
A +
Philippe Bouchardy a écrit :
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news:
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur avant et après la modification ? J'en aurais besoin pour mettre à jour des tables qui en utilisent la valeur.
Merci.
-- Patrick
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
Bonjour,
votre code dans le trigger est incorrect car il suppose qu'une seule
ligne ne sera jamais UPDATée à la fois ce qui est faux car un trigger
SQL Server est toujours ensembliste.
Dans le code d'un trigger ne devrait donc jamais figurer des variables
sauf à utiliser un curseur pour lires les lignes des pseudo tables
inserted et deleted.
A +
Philippe Bouchardy a écrit :
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à
récupérer les données avant et après leurs modifications, prenons pour
exemple la table suivante :
Customers :
customerId : int
businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et
les nouvelles valeurs
create trigger trg_before_update
on dbo.Customers
for update as
if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les
données
declare @old_businessName varchar(50), @new_businessName varchar(50)
begin
-- récupération de l'ancienne valeur
select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur
select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3'
-- ici on affiche juste le contenu de nos variables pour tester
print 'old : ' + @old_businessName
print 'new: ' + @new_businessName
end
Cordialement,
Philippe
"Patrick" <no.spam.patrick.fredin@iquebec.com> wrote in message
news:236405BB-45BD-4E3D-9F4D-4B9CAC2A9493@microsoft.com...
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur
avant
et après la modification ? J'en aurais besoin pour mettre à jour des
tables
qui en utilisent la valeur.
Merci.
--
Patrick
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
votre code dans le trigger est incorrect car il suppose qu'une seule ligne ne sera jamais UPDATée à la fois ce qui est faux car un trigger SQL Server est toujours ensembliste. Dans le code d'un trigger ne devrait donc jamais figurer des variables sauf à utiliser un curseur pour lires les lignes des pseudo tables inserted et deleted.
A +
Philippe Bouchardy a écrit :
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news:
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur avant et après la modification ? J'en aurais besoin pour mettre à jour des tables qui en utilisent la valeur.
Merci.
-- Patrick
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
helios services
Fred BROUARD a écrit :
Bonjour,
votre code dans le trigger est incorrect car il suppose qu'une seule ligne ne sera jamais UPDATée à la fois ce qui est faux car un trigger SQL Server est toujours ensembliste. Dans le code d'un trigger ne devrait donc jamais figurer des variables sauf à utiliser un curseur pour lires les lignes des pseudo tables inserted et deleted.
A +
Philippe Bouchardy a écrit :
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news:
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur avant et après la modification ? J'en aurais besoin pour mettre à jour des tables qui en utilisent la valeur.
Merci.
-- Patrick
mais peut on faire confiance à quelqu'un qui prétends coder plus de 65536 valeurs sur 2 octets ?
-- Dr Thierry HOLZ HELIOS SERVICES 180 rue de la croix du chene 60250 HEILLES www.openqm.com02.net www.pick.com02.net
Fred BROUARD a écrit :
Bonjour,
votre code dans le trigger est incorrect car il suppose qu'une seule
ligne ne sera jamais UPDATée à la fois ce qui est faux car un trigger
SQL Server est toujours ensembliste.
Dans le code d'un trigger ne devrait donc jamais figurer des variables
sauf à utiliser un curseur pour lires les lignes des pseudo tables
inserted et deleted.
A +
Philippe Bouchardy a écrit :
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à
récupérer les données avant et après leurs modifications, prenons pour
exemple la table suivante :
Customers :
customerId : int
businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les
anciennes et les nouvelles valeurs
create trigger trg_before_update
on dbo.Customers
for update as
if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les
données
declare @old_businessName varchar(50), @new_businessName varchar(50)
begin
-- récupération de l'ancienne valeur
select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur
select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table
'report3'
-- ici on affiche juste le contenu de nos variables pour tester
print 'old : ' + @old_businessName
print 'new: ' + @new_businessName
end
Cordialement,
Philippe
"Patrick" <no.spam.patrick.fredin@iquebec.com> wrote in message
news:236405BB-45BD-4E3D-9F4D-4B9CAC2A9493@microsoft.com...
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la
valeur avant
et après la modification ? J'en aurais besoin pour mettre à jour des
tables
qui en utilisent la valeur.
Merci.
--
Patrick
mais peut on faire confiance à quelqu'un qui prétends coder plus de
65536 valeurs sur 2 octets ?
votre code dans le trigger est incorrect car il suppose qu'une seule ligne ne sera jamais UPDATée à la fois ce qui est faux car un trigger SQL Server est toujours ensembliste. Dans le code d'un trigger ne devrait donc jamais figurer des variables sauf à utiliser un curseur pour lires les lignes des pseudo tables inserted et deleted.
A +
Philippe Bouchardy a écrit :
Bonjour Patrick,
Vous pouvez faire référence aux tables deleted / inserted de manière à récupérer les données avant et après leurs modifications, prenons pour exemple la table suivante :
Customers : customerId : int businessName : varchar(50)
Voici un exemple de triggers qui permettrait de récupérer les anciennes et les nouvelles valeurs
create trigger trg_before_update on dbo.Customers for update as if update (businessName) -- si la colonne est mise à jour
-- déclaration de deux variables qui vont permettre de stocker les données declare @old_businessName varchar(50), @new_businessName varchar(50)
begin -- récupération de l'ancienne valeur select @old_businessName = deleted.businessName from deleted
-- récupération de la nouvelle valeur select @new_businessName = inserted.businessName from inserted
-- dans votre cas vous allez procéder a l'update de la table 'report3' -- ici on affiche juste le contenu de nos variables pour tester print 'old : ' + @old_businessName print 'new: ' + @new_businessName end
Cordialement,
Philippe
"Patrick" wrote in message news:
Bonjour,
Dans un trigger "AFTER UPDATE", est-il possible de connaître la valeur avant et après la modification ? J'en aurais besoin pour mettre à jour des tables qui en utilisent la valeur.
Merci.
-- Patrick
mais peut on faire confiance à quelqu'un qui prétends coder plus de 65536 valeurs sur 2 octets ?