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

Trigger UPDATE HELPE URGENT SVP

4 réponses
Avatar
Abdoul
bonjour

j'ai mis un declencheur Update pour controler si une colonne est modifiée.
si oui je veux que cette modification s'effectue aussi dans une table dans
l'enregistrement qui a le meme ID.
j'ai mis ça

Create Trigger TRGmodifT on dbo.FactueT
FOR UPDATE
AS
IF UPDATE (Facturé)
UPDATE T2
SET Facturé =1
where T1.id = T2.id
go

ceci me modifi tous les enregistrement de la table T2
je vous signale que les deux table ne sont pas en relation.

4 réponses

Avatar
Abdoul
C'est bon j'ai trouvé la solution
en bas je devais faire
where T1.ID=(select id from inserted


"Abdoul" a écrit :

bonjour

j'ai mis un declencheur Update pour controler si une colonne est modifiée.
si oui je veux que cette modification s'effectue aussi dans une table dans
l'enregistrement qui a le meme ID.
j'ai mis ça

Create Trigger TRGmodifT on dbo.FactueT
FOR UPDATE
AS
IF UPDATE (Facturé)
UPDATE T2
SET Facturé =1
where T1.id = T2.id
go

ceci me modifi tous les enregistrement de la table T2
je vous signale que les deux table ne sont pas en relation.


Avatar
Christophe
tres sincerement cette requete est super mal écrite !
essaye plutot de mettre ca dans ton trigger ca devrait aller beaucoup mieux
!

Update Fact set TonChamp = inserted.TonChamp
From Fact inner join inserted on Fact.id = inserted.id

Voila cela va avoir pour principe de mettre à jour ta table Fact avec tous
les enregistrements concernés par le update qui à declenché le trigger !
evite la sous requete dans ton where car un trigger ca doit etre tres rapide
!
j'espere que le ID est ta clef primaire ?

Ch.


"Abdoul" a écrit dans le message de
news:
C'est bon j'ai trouvé la solution
en bas je devais faire
where T1.ID=(select id from inserted


"Abdoul" a écrit :

> bonjour
>
> j'ai mis un declencheur Update pour controler si une colonne est


modifiée.
> si oui je veux que cette modification s'effectue aussi dans une table


dans
> l'enregistrement qui a le meme ID.
> j'ai mis ça
>
> Create Trigger TRGmodifT on dbo.FactueT
> FOR UPDATE
> AS
> IF UPDATE (Facturé)
> UPDATE T2
> SET Facturé =1
> where T1.id = T2.id
> go
>
> ceci me modifi tous les enregistrement de la table T2
> je vous signale que les deux table ne sont pas en relation.


Avatar
Abdoul
regarde ça et dis moi si c bien. ça marche bien pour moi

pour info. mes deux table ne sont pas en relation.
la deuxième table je l'ai suite à l'execution d'une procedure qui insert des
lignes .

CREATE TRIGGER [TrgModifFacturé] ON dbo.FACTURE_à_Etablire
FOR UPDATE
AS
IF UPDATE (facturé)
update dossier_fabrication
set facturé=1 'ici peut etre je dois mettre =inserted.facturé'
where dossier_fabrication.dos_fabrication=(select Nfacture from inserted)
merci

"Christophe" a écrit :

tres sincerement cette requete est super mal écrite !
essaye plutot de mettre ca dans ton trigger ca devrait aller beaucoup mieux
!

Update Fact set TonChamp = inserted.TonChamp
From Fact inner join inserted on Fact.id = inserted.id

Voila cela va avoir pour principe de mettre à jour ta table Fact avec tous
les enregistrements concernés par le update qui à declenché le trigger !
evite la sous requete dans ton where car un trigger ca doit etre tres rapide
!
j'espere que le ID est ta clef primaire ?

Ch.


"Abdoul" a écrit dans le message de
news:
> C'est bon j'ai trouvé la solution
> en bas je devais faire
> where T1.ID=(select id from inserted
>
>
> "Abdoul" a écrit :
>
> > bonjour
> >
> > j'ai mis un declencheur Update pour controler si une colonne est
modifiée.
> > si oui je veux que cette modification s'effectue aussi dans une table
dans
> > l'enregistrement qui a le meme ID.
> > j'ai mis ça
> >
> > Create Trigger TRGmodifT on dbo.FactueT
> > FOR UPDATE
> > AS
> > IF UPDATE (Facturé)
> > UPDATE T2
> > SET Facturé =1
> > where T1.id = T2.id
> > go
> >
> > ceci me modifi tous les enregistrement de la table T2
> > je vous signale que les deux table ne sont pas en relation.





Avatar
Christophe
evite de refaire une sous requete dans ton where !
cela ralenti, et un trigger doit aller super vite !
de plus c'est moins propre qu'un relation !
car la table inserted créé par le trigger est exactement la meme que celle
qu'il est en train de mettre à jour d'ou la relation sur cle primaire !
Ch.



"Abdoul" a écrit dans le message de
news:
regarde ça et dis moi si c bien. ça marche bien pour moi

pour info. mes deux table ne sont pas en relation.
la deuxième table je l'ai suite à l'execution d'une procedure qui insert


des
lignes .

CREATE TRIGGER [TrgModifFacturé] ON dbo.FACTURE_à_Etablire
FOR UPDATE
AS
IF UPDATE (facturé)
update dossier_fabrication
set facturé=1 'ici peut etre je dois mettre =inserted.facturé'
where dossier_fabrication.dos_fabrication=(select Nfacture from inserted)
merci

"Christophe" a écrit :

> tres sincerement cette requete est super mal écrite !
> essaye plutot de mettre ca dans ton trigger ca devrait aller beaucoup


mieux
> !
>
> Update Fact set TonChamp = inserted.TonChamp
> From Fact inner join inserted on Fact.id = inserted.id
>
> Voila cela va avoir pour principe de mettre à jour ta table Fact avec


tous
> les enregistrements concernés par le update qui à declenché le trigger !
> evite la sous requete dans ton where car un trigger ca doit etre tres


rapide
> !
> j'espere que le ID est ta clef primaire ?
>
> Ch.
>
>
> "Abdoul" a écrit dans le message de
> news:
> > C'est bon j'ai trouvé la solution
> > en bas je devais faire
> > where T1.ID=(select id from inserted
> >
> >
> > "Abdoul" a écrit :
> >
> > > bonjour
> > >
> > > j'ai mis un declencheur Update pour controler si une colonne est
> modifiée.
> > > si oui je veux que cette modification s'effectue aussi dans une


table
> dans
> > > l'enregistrement qui a le meme ID.
> > > j'ai mis ça
> > >
> > > Create Trigger TRGmodifT on dbo.FactueT
> > > FOR UPDATE
> > > AS
> > > IF UPDATE (Facturé)
> > > UPDATE T2
> > > SET Facturé =1
> > > where T1.id = T2.id
> > > go
> > >
> > > ceci me modifi tous les enregistrement de la table T2
> > > je vous signale que les deux table ne sont pas en relation.
>
>
>