Bonjour,
Je souhaiterais cr=E9er un trigger qui s'execute =E0 chaque=20
ajout ou modif d'une de mes tables mais je ne sais pas=20
comment limiter ma requ=EAte seulement =E0 l'enregistrement en=20
cours.
Ci-dessous, ce trigger fonctionne mais Update enti=E8rement=20
ma table plutot que seulement l'enregistrement en cours.
Quel crit=E8re rajouter =E0 ma requ=EAte Update ?
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table SET champ1 =3D champ2+champ3
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
Alexis Leroy
Regarder les tables deleted et inserted dans l'aide. Elles contiennent les enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
Regarder les tables deleted et inserted dans l'aide. Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy
Promotool.com
"Davelop" <davelop@yahoo.com> a écrit dans le message de
news:5a4501c3e59e$875d2d90$a001280a@phx.gbl...
Bonjour,
Je souhaiterais créer un trigger qui s'execute à chaque
ajout ou modif d'une de mes tables mais je ne sais pas
comment limiter ma requête seulement à l'enregistrement en
cours.
Ci-dessous, ce trigger fonctionne mais Update entièrement
ma table plutot que seulement l'enregistrement en cours.
Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table SET champ1 = champ2+champ3
Regarder les tables deleted et inserted dans l'aide. Elles contiennent les enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
DAVELOP
Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
.
Désolé mais je ne comprend pas ce que je dois faire
exactement.
-----Message d'origine-----
Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy
Promotool.com
"Davelop" <davelop@yahoo.com> a écrit dans le message de
news:5a4501c3e59e$875d2d90$a001280a@phx.gbl...
Bonjour,
Je souhaiterais créer un trigger qui s'execute à chaque
ajout ou modif d'une de mes tables mais je ne sais pas
comment limiter ma requête seulement à l'enregistrement en
cours.
Ci-dessous, ce trigger fonctionne mais Update entièrement
ma table plutot que seulement l'enregistrement en cours.
Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table SET champ1 = champ2+champ3
Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
.
Patrice Scribe
Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées par les instructions DELETE et UPDATE. Pendant l'exécution d'une instruction DELETE ou UPDATE, certaines lignes sont supprimées de la table du déclencheur et déplacées vers la table deleted. La table deleted et la table du déclencheur ne possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées par les instructions INSERT et UPDATE. Durant une transaction INSERT ou UPDATE, de nouvelles lignes sont ajoutées simultanément dans la table inserted et dans la table du déclencheur. Les lignes de la table inserted sont des copies des lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le chapitre complet...
Patrice
--
"DAVELOP" a écrit dans le message de news:5cf301c3e5a5$8c81fec0$ Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
.
Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées par les instructions
DELETE et UPDATE. Pendant l'exécution d'une instruction DELETE ou UPDATE,
certaines lignes sont supprimées de la table du déclencheur et déplacées
vers la table deleted. La table deleted et la table du déclencheur ne
possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées par les
instructions INSERT et UPDATE. Durant une transaction INSERT ou UPDATE, de
nouvelles lignes sont ajoutées simultanément dans la table inserted et dans
la table du déclencheur. Les lignes de la table inserted sont des copies des
lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le chapitre
complet...
Patrice
--
"DAVELOP" <davelop@yahoo.com> a écrit dans le message de
news:5cf301c3e5a5$8c81fec0$a401280a@phx.gbl...
Désolé mais je ne comprend pas ce que je dois faire
exactement.
-----Message d'origine-----
Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy
Promotool.com
"Davelop" <davelop@yahoo.com> a écrit dans le message de
news:5a4501c3e59e$875d2d90$a001280a@phx.gbl...
Bonjour,
Je souhaiterais créer un trigger qui s'execute à chaque
ajout ou modif d'une de mes tables mais je ne sais pas
comment limiter ma requête seulement à l'enregistrement en
cours.
Ci-dessous, ce trigger fonctionne mais Update entièrement
ma table plutot que seulement l'enregistrement en cours.
Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table SET champ1 = champ2+champ3
La table deleted stocke des copies des lignes affectées par les instructions DELETE et UPDATE. Pendant l'exécution d'une instruction DELETE ou UPDATE, certaines lignes sont supprimées de la table du déclencheur et déplacées vers la table deleted. La table deleted et la table du déclencheur ne possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées par les instructions INSERT et UPDATE. Durant une transaction INSERT ou UPDATE, de nouvelles lignes sont ajoutées simultanément dans la table inserted et dans la table du déclencheur. Les lignes de la table inserted sont des copies des lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le chapitre complet...
Patrice
--
"DAVELOP" a écrit dans le message de news:5cf301c3e5a5$8c81fec0$ Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
.
DAVELOP
J'ai été voir l'aide sur cette rubrique mais mes limites SQL server ont été dépassés :(( Je comprend pas ce que je dois faire exactement dans mon trigger.
-----Message d'origine----- Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées
par les instructions
DELETE et UPDATE. Pendant l'exécution d'une instruction
DELETE ou UPDATE,
certaines lignes sont supprimées de la table du
déclencheur et déplacées
vers la table deleted. La table deleted et la table du
déclencheur ne
possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées
par les
instructions INSERT et UPDATE. Durant une transaction
INSERT ou UPDATE, de
nouvelles lignes sont ajoutées simultanément dans la
table inserted et dans
la table du déclencheur. Les lignes de la table inserted
sont des copies des
lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le
chapitre
complet...
Patrice
--
"DAVELOP" a écrit dans le message de news:5cf301c3e5a5$8c81fec0$ Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement
en
cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
J'ai été voir l'aide sur cette rubrique mais mes limites
SQL server ont été dépassés :((
Je comprend pas ce que je dois faire exactement dans mon
trigger.
-----Message d'origine-----
Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées
par les instructions
DELETE et UPDATE. Pendant l'exécution d'une instruction
DELETE ou UPDATE,
certaines lignes sont supprimées de la table du
déclencheur et déplacées
vers la table deleted. La table deleted et la table du
déclencheur ne
possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées
par les
instructions INSERT et UPDATE. Durant une transaction
INSERT ou UPDATE, de
nouvelles lignes sont ajoutées simultanément dans la
table inserted et dans
la table du déclencheur. Les lignes de la table inserted
sont des copies des
lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le
chapitre
complet...
Patrice
--
"DAVELOP" <davelop@yahoo.com> a écrit dans le message de
news:5cf301c3e5a5$8c81fec0$a401280a@phx.gbl...
Désolé mais je ne comprend pas ce que je dois faire
exactement.
-----Message d'origine-----
Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy
Promotool.com
"Davelop" <davelop@yahoo.com> a écrit dans le message de
news:5a4501c3e59e$875d2d90$a001280a@phx.gbl...
Bonjour,
Je souhaiterais créer un trigger qui s'execute à chaque
ajout ou modif d'une de mes tables mais je ne sais pas
comment limiter ma requête seulement à l'enregistrement
en
cours.
Ci-dessous, ce trigger fonctionne mais Update entièrement
ma table plutot que seulement l'enregistrement en cours.
Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table SET champ1 = champ2+champ3
J'ai été voir l'aide sur cette rubrique mais mes limites SQL server ont été dépassés :(( Je comprend pas ce que je dois faire exactement dans mon trigger.
-----Message d'origine----- Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées
par les instructions
DELETE et UPDATE. Pendant l'exécution d'une instruction
DELETE ou UPDATE,
certaines lignes sont supprimées de la table du
déclencheur et déplacées
vers la table deleted. La table deleted et la table du
déclencheur ne
possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées
par les
instructions INSERT et UPDATE. Durant une transaction
INSERT ou UPDATE, de
nouvelles lignes sont ajoutées simultanément dans la
table inserted et dans
la table du déclencheur. Les lignes de la table inserted
sont des copies des
lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le
chapitre
complet...
Patrice
--
"DAVELOP" a écrit dans le message de news:5cf301c3e5a5$8c81fec0$ Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement
en
cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
Nicolas LETULLIER
En imaginant que MaCle soit la clé primaire de la table ma_table, il faut faire une jointure ou une sous-requête entre la table ma_table et la pseudo-table INSERTED pour savoir quelles sont les lignes à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de plusieurs lignes) sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3 WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Nicolas
"DAVELOP" a écrit dans le message de news:69d601c3e671$a7a3d210$ J'ai été voir l'aide sur cette rubrique mais mes limites SQL server ont été dépassés :(( Je comprend pas ce que je dois faire exactement dans mon trigger.
-----Message d'origine----- Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées
par les instructions
DELETE et UPDATE. Pendant l'exécution d'une instruction
DELETE ou UPDATE,
certaines lignes sont supprimées de la table du
déclencheur et déplacées
vers la table deleted. La table deleted et la table du
déclencheur ne
possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées
par les
instructions INSERT et UPDATE. Durant une transaction
INSERT ou UPDATE, de
nouvelles lignes sont ajoutées simultanément dans la
table inserted et dans
la table du déclencheur. Les lignes de la table inserted
sont des copies des
lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le
chapitre
complet...
Patrice
--
"DAVELOP" a écrit dans le message de news:5cf301c3e5a5$8c81fec0$ Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement
en
cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
En imaginant que MaCle soit la clé primaire de la table ma_table, il faut
faire une jointure ou une sous-requête entre la table ma_table et la
pseudo-table INSERTED pour savoir quelles sont les lignes à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de plusieurs lignes)
sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table
SET champ1 = champ2+champ3
WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Nicolas
"DAVELOP" <davelop@yahoo.com> a écrit dans le message de
news:69d601c3e671$a7a3d210$a501280a@phx.gbl...
J'ai été voir l'aide sur cette rubrique mais mes limites
SQL server ont été dépassés :((
Je comprend pas ce que je dois faire exactement dans mon
trigger.
-----Message d'origine-----
Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées
par les instructions
DELETE et UPDATE. Pendant l'exécution d'une instruction
DELETE ou UPDATE,
certaines lignes sont supprimées de la table du
déclencheur et déplacées
vers la table deleted. La table deleted et la table du
déclencheur ne
possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées
par les
instructions INSERT et UPDATE. Durant une transaction
INSERT ou UPDATE, de
nouvelles lignes sont ajoutées simultanément dans la
table inserted et dans
la table du déclencheur. Les lignes de la table inserted
sont des copies des
lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le
chapitre
complet...
Patrice
--
"DAVELOP" <davelop@yahoo.com> a écrit dans le message de
news:5cf301c3e5a5$8c81fec0$a401280a@phx.gbl...
Désolé mais je ne comprend pas ce que je dois faire
exactement.
-----Message d'origine-----
Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy
Promotool.com
"Davelop" <davelop@yahoo.com> a écrit dans le message de
news:5a4501c3e59e$875d2d90$a001280a@phx.gbl...
Bonjour,
Je souhaiterais créer un trigger qui s'execute à chaque
ajout ou modif d'une de mes tables mais je ne sais pas
comment limiter ma requête seulement à l'enregistrement
en
cours.
Ci-dessous, ce trigger fonctionne mais Update entièrement
ma table plutot que seulement l'enregistrement en cours.
Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table SET champ1 = champ2+champ3
En imaginant que MaCle soit la clé primaire de la table ma_table, il faut faire une jointure ou une sous-requête entre la table ma_table et la pseudo-table INSERTED pour savoir quelles sont les lignes à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de plusieurs lignes) sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3 WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Nicolas
"DAVELOP" a écrit dans le message de news:69d601c3e671$a7a3d210$ J'ai été voir l'aide sur cette rubrique mais mes limites SQL server ont été dépassés :(( Je comprend pas ce que je dois faire exactement dans mon trigger.
-----Message d'origine----- Extrait de l'aide en ligne SQL Serveur :
La table deleted stocke des copies des lignes affectées
par les instructions
DELETE et UPDATE. Pendant l'exécution d'une instruction
DELETE ou UPDATE,
certaines lignes sont supprimées de la table du
déclencheur et déplacées
vers la table deleted. La table deleted et la table du
déclencheur ne
possèdent habituellement pas de ligne en commun.
La table inserted stocke des copies des lignes affectées
par les
instructions INSERT et UPDATE. Durant une transaction
INSERT ou UPDATE, de
nouvelles lignes sont ajoutées simultanément dans la
table inserted et dans
la table du déclencheur. Les lignes de la table inserted
sont des copies des
lignes créées dans la table du déclencheur.
Voir "Utilisation des tables inserted et deleted" pour le
chapitre
complet...
Patrice
--
"DAVELOP" a écrit dans le message de news:5cf301c3e5a5$8c81fec0$ Désolé mais je ne comprend pas ce que je dois faire exactement.
-----Message d'origine----- Regarder les tables deleted et inserted dans l'aide.
Elles contiennent les
enregistrement ajoutés ou/et supprimés.
Alexis Leroy Promotool.com
"Davelop" a écrit dans le message de news:5a4501c3e59e$875d2d90$ Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement
en
cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
DAVELOP
OK merci beaucoup c'est plus clair pour mon niveau. Merci quand même aux autres.
Ces tables inserted et deleted ne sont pas visible d'entreprise manager. elles sont cachées ou crées temporairement le temps de la transaction ?
Et que se soit une requête "insert" ou "update" est-ce toujours la table "inserted" qui est utilisé ?
-----Message d'origine----- En imaginant que MaCle soit la clé primaire de la table
ma_table, il faut
faire une jointure ou une sous-requête entre la table
ma_table et la
pseudo-table INSERTED pour savoir quelles sont les lignes
à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de
plusieurs lignes)
sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3 WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Nicolas
OK merci beaucoup c'est plus clair pour mon niveau. Merci
quand même aux autres.
Ces tables inserted et deleted ne sont pas visible
d'entreprise manager. elles sont cachées ou crées
temporairement le temps de la transaction ?
Et que se soit une requête "insert" ou "update" est-ce
toujours la table "inserted" qui est utilisé ?
-----Message d'origine-----
En imaginant que MaCle soit la clé primaire de la table
ma_table, il faut
faire une jointure ou une sous-requête entre la table
ma_table et la
pseudo-table INSERTED pour savoir quelles sont les lignes
à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de
plusieurs lignes)
sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table
SET champ1 = champ2+champ3
WHERE MaCle IN (SELECT MaCle FROM INSERTED)
OK merci beaucoup c'est plus clair pour mon niveau. Merci quand même aux autres.
Ces tables inserted et deleted ne sont pas visible d'entreprise manager. elles sont cachées ou crées temporairement le temps de la transaction ?
Et que se soit une requête "insert" ou "update" est-ce toujours la table "inserted" qui est utilisé ?
-----Message d'origine----- En imaginant que MaCle soit la clé primaire de la table
ma_table, il faut
faire une jointure ou une sous-requête entre la table
ma_table et la
pseudo-table INSERTED pour savoir quelles sont les lignes
à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de
plusieurs lignes)
sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3 WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Nicolas
Alexis Leroy
Les tables inserted et deleted ne sont accessible que dans le trigger. Dans le cas d'un INSERT, la table inserted contient l'ensemble des lignes insérées. Dans le cas d'un DELETE, la table deleted contient l'ensemble des lignes supprimées. Dans le cas d'un UPDATE, la table inserted contient les nouvelles valeurs et la table deleted contient les ancienne valeurs (celles d'avant l'UPDATE).
Cordialement,
Alexis Leroy
"DAVELOP" a écrit dans le message de news:645e01c3e679$cd0a6e30$ OK merci beaucoup c'est plus clair pour mon niveau. Merci quand même aux autres.
Ces tables inserted et deleted ne sont pas visible d'entreprise manager. elles sont cachées ou crées temporairement le temps de la transaction ?
Et que se soit une requête "insert" ou "update" est-ce toujours la table "inserted" qui est utilisé ?
-----Message d'origine----- En imaginant que MaCle soit la clé primaire de la table
ma_table, il faut
faire une jointure ou une sous-requête entre la table
ma_table et la
pseudo-table INSERTED pour savoir quelles sont les lignes
à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de
plusieurs lignes)
sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3 WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Nicolas
Les tables inserted et deleted ne sont accessible que dans le trigger.
Dans le cas d'un INSERT, la table inserted contient l'ensemble des lignes
insérées.
Dans le cas d'un DELETE, la table deleted contient l'ensemble des lignes
supprimées.
Dans le cas d'un UPDATE, la table inserted contient les nouvelles valeurs et
la table deleted contient les ancienne valeurs (celles d'avant l'UPDATE).
Cordialement,
Alexis Leroy
"DAVELOP" <davelop@yahoo.com> a écrit dans le message de
news:645e01c3e679$cd0a6e30$a101280a@phx.gbl...
OK merci beaucoup c'est plus clair pour mon niveau. Merci
quand même aux autres.
Ces tables inserted et deleted ne sont pas visible
d'entreprise manager. elles sont cachées ou crées
temporairement le temps de la transaction ?
Et que se soit une requête "insert" ou "update" est-ce
toujours la table "inserted" qui est utilisé ?
-----Message d'origine-----
En imaginant que MaCle soit la clé primaire de la table
ma_table, il faut
faire une jointure ou une sous-requête entre la table
ma_table et la
pseudo-table INSERTED pour savoir quelles sont les lignes
à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de
plusieurs lignes)
sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table
SET champ1 = champ2+champ3
WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Les tables inserted et deleted ne sont accessible que dans le trigger. Dans le cas d'un INSERT, la table inserted contient l'ensemble des lignes insérées. Dans le cas d'un DELETE, la table deleted contient l'ensemble des lignes supprimées. Dans le cas d'un UPDATE, la table inserted contient les nouvelles valeurs et la table deleted contient les ancienne valeurs (celles d'avant l'UPDATE).
Cordialement,
Alexis Leroy
"DAVELOP" a écrit dans le message de news:645e01c3e679$cd0a6e30$ OK merci beaucoup c'est plus clair pour mon niveau. Merci quand même aux autres.
Ces tables inserted et deleted ne sont pas visible d'entreprise manager. elles sont cachées ou crées temporairement le temps de la transaction ?
Et que se soit une requête "insert" ou "update" est-ce toujours la table "inserted" qui est utilisé ?
-----Message d'origine----- En imaginant que MaCle soit la clé primaire de la table
ma_table, il faut
faire une jointure ou une sous-requête entre la table
ma_table et la
pseudo-table INSERTED pour savoir quelles sont les lignes
à modifier.
Attention, ne pas oublier qu'en cas de MAJ multiple (de
plusieurs lignes)
sur une table, le trigger n'est exécuté qu'une seule fois.
En gros
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3 WHERE MaCle IN (SELECT MaCle FROM INSERTED)
Nicolas
Fred BROUARD
a lire pour comprendre : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQL.html paragraphe : 4 - Les triggers
A +
Davelop a écrit:
Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
a lire pour comprendre :
http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQL.html
paragraphe :
4 - Les triggers
A +
Davelop a écrit:
Bonjour,
Je souhaiterais créer un trigger qui s'execute à chaque
ajout ou modif d'une de mes tables mais je ne sais pas
comment limiter ma requête seulement à l'enregistrement en
cours.
Ci-dessous, ce trigger fonctionne mais Update entièrement
ma table plutot que seulement l'enregistrement en cours.
Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table
FOR INSERT,UPDATE
AS
UPDATE ma_table SET champ1 = champ2+champ3
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
a lire pour comprendre : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQL.html paragraphe : 4 - Les triggers
A +
Davelop a écrit:
Bonjour, Je souhaiterais créer un trigger qui s'execute à chaque ajout ou modif d'une de mes tables mais je ne sais pas comment limiter ma requête seulement à l'enregistrement en cours. Ci-dessous, ce trigger fonctionne mais Update entièrement ma table plutot que seulement l'enregistrement en cours. Quel critère rajouter à ma requête Update ?
CREATE TRIGGER nom_trigger ON ma_table FOR INSERT,UPDATE AS UPDATE ma_table SET champ1 = champ2+champ3
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************