J'ai une incompréhension sur la fonction UPDATE(col).
Dans un trigger sur update, on dispose des pseudos tables Inserted et
Deleted.
Il semble que ces tables peuvent contenir plusieurs lignes.
--- copie MSDN Library
If trigger actions depend on the number of rows a data modification
effects, use tests (such as an examination of @@ROWCOUNT) for multirow
data modifications (an INSERT, DELETE, or UPDATE based on a SELECT
statement), and take appropriate actions.
---
Dans quelle circonstance cela peut-il arriver ?
Si c'est le cas, quel usage peut-il être fait de la fonction UPDATE() ?
--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
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
Patrice
Le trigger est effectué une fois avec toutes les lignes impactées dans inserted/deleted et non pas plusieurs fois pour chaque "enregistrement" séparemment.
Voir la doc mais de mémoire, cette fonction indique simplement si la colonne apparait dans la clause de mise à jour, pas si la colonne est effectivement mise à jour sur un "enregistrement" en particulier.
Essaie par exemple pour commencer un UPDATE MaTable SET MonChamp=MonChamp . Je m'attends à : - pas de clause where donc toutes les lignes seront présentes dans inserted/deleted - UPDATE(MonChamp) devrait être vrai (ce champ fait l'objet d'une "mise à jour" même si la nouvelle valeur est la même) car il apparait dans la liste des champs modifiés...
-- Patrice
"Fred" a écrit dans le message de news: %
Bonjour,
J'ai une incompréhension sur la fonction UPDATE(col). Dans un trigger sur update, on dispose des pseudos tables Inserted et Deleted. Il semble que ces tables peuvent contenir plusieurs lignes.
--- copie MSDN Library If trigger actions depend on the number of rows a data modification effects, use tests (such as an examination of @@ROWCOUNT) for multirow data modifications (an INSERT, DELETE, or UPDATE based on a SELECT statement), and take appropriate actions. ---
Dans quelle circonstance cela peut-il arriver ? Si c'est le cas, quel usage peut-il être fait de la fonction UPDATE() ?
-- Fred http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Le trigger est effectué une fois avec toutes les lignes impactées dans
inserted/deleted et non pas plusieurs fois pour chaque "enregistrement"
séparemment.
Voir la doc mais de mémoire, cette fonction indique simplement si la colonne
apparait dans la clause de mise à jour, pas si la colonne est effectivement
mise à jour sur un "enregistrement" en particulier.
Essaie par exemple pour commencer un UPDATE MaTable SET MonChamp=MonChamp .
Je m'attends à :
- pas de clause where donc toutes les lignes seront présentes dans
inserted/deleted
- UPDATE(MonChamp) devrait être vrai (ce champ fait l'objet d'une "mise à
jour" même si la nouvelle valeur est la même) car il apparait dans la liste
des champs modifiés...
--
Patrice
"Fred" <foleide@libre.france> a écrit dans le message de news:
%23ycO8O1pHHA.4872@TK2MSFTNGP03.phx.gbl...
Bonjour,
J'ai une incompréhension sur la fonction UPDATE(col).
Dans un trigger sur update, on dispose des pseudos tables Inserted et
Deleted.
Il semble que ces tables peuvent contenir plusieurs lignes.
--- copie MSDN Library
If trigger actions depend on the number of rows a data modification
effects, use tests (such as an examination of @@ROWCOUNT) for multirow
data modifications (an INSERT, DELETE, or UPDATE based on a SELECT
statement), and take appropriate actions.
---
Dans quelle circonstance cela peut-il arriver ?
Si c'est le cas, quel usage peut-il être fait de la fonction UPDATE() ?
--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Le trigger est effectué une fois avec toutes les lignes impactées dans inserted/deleted et non pas plusieurs fois pour chaque "enregistrement" séparemment.
Voir la doc mais de mémoire, cette fonction indique simplement si la colonne apparait dans la clause de mise à jour, pas si la colonne est effectivement mise à jour sur un "enregistrement" en particulier.
Essaie par exemple pour commencer un UPDATE MaTable SET MonChamp=MonChamp . Je m'attends à : - pas de clause where donc toutes les lignes seront présentes dans inserted/deleted - UPDATE(MonChamp) devrait être vrai (ce champ fait l'objet d'une "mise à jour" même si la nouvelle valeur est la même) car il apparait dans la liste des champs modifiés...
-- Patrice
"Fred" a écrit dans le message de news: %
Bonjour,
J'ai une incompréhension sur la fonction UPDATE(col). Dans un trigger sur update, on dispose des pseudos tables Inserted et Deleted. Il semble que ces tables peuvent contenir plusieurs lignes.
--- copie MSDN Library If trigger actions depend on the number of rows a data modification effects, use tests (such as an examination of @@ROWCOUNT) for multirow data modifications (an INSERT, DELETE, or UPDATE based on a SELECT statement), and take appropriate actions. ---
Dans quelle circonstance cela peut-il arriver ? Si c'est le cas, quel usage peut-il être fait de la fonction UPDATE() ?
-- Fred http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Fred
Dans : news:, Patrice disait :
Voir la doc mais de mémoire, cette fonction indique simplement si la colonne apparait dans la clause de mise à jour, pas si la colonne est effectivement mise à jour sur un "enregistrement" en particulier.
En relisant la doc, c'est effectivement ce que j'aurais du comprendre ! Merci pour cet éclaircissement.
-- Fred http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Dans : news:u607AU2pHHA.3264@TK2MSFTNGP04.phx.gbl,
Patrice disait :
Voir la doc mais de mémoire, cette fonction indique simplement si la
colonne apparait dans la clause de mise à jour, pas si la colonne est
effectivement mise à jour sur un "enregistrement" en particulier.
En relisant la doc, c'est effectivement ce que j'aurais du comprendre !
Merci pour cet éclaircissement.
--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Voir la doc mais de mémoire, cette fonction indique simplement si la colonne apparait dans la clause de mise à jour, pas si la colonne est effectivement mise à jour sur un "enregistrement" en particulier.
En relisant la doc, c'est effectivement ce que j'aurais du comprendre ! Merci pour cet éclaircissement.
-- Fred http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Fred BROUARD
Fred a écrit :
Bonjour,
J'ai une incompréhension sur la fonction UPDATE(col). Dans un trigger sur update, on dispose des pseudos tables Inserted et Deleted. Il semble que ces tables peuvent contenir plusieurs lignes.
les triggers sont par nature ensembliste, c'est à dire que c'est l'ordre INSERT UPDATE OU DELETE qui déclenche le code du trigger qu'il y ait une ligne ou trois millions.
Lisez l'article que j'ai écrit a cet égard... http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L5
--- copie MSDN Library If trigger actions depend on the number of rows a data modification effects, use tests (such as an examination of @@ROWCOUNT) for multirow data modifications (an INSERT, DELETE, or UPDATE based on a SELECT statement), and take appropriate actions. ---
Dans quelle circonstance cela peut-il arriver ? Si c'est le cas, quel usage peut-il être fait de la fonction UPDATE() ?
A +
-- 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.datasapiens.com ***********************
Fred a écrit :
Bonjour,
J'ai une incompréhension sur la fonction UPDATE(col).
Dans un trigger sur update, on dispose des pseudos tables Inserted et
Deleted.
Il semble que ces tables peuvent contenir plusieurs lignes.
les triggers sont par nature ensembliste, c'est à dire que c'est l'ordre
INSERT UPDATE OU DELETE qui déclenche le code du trigger qu'il y ait une
ligne ou trois millions.
Lisez l'article que j'ai écrit a cet égard...
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L5
--- copie MSDN Library
If trigger actions depend on the number of rows a data modification
effects, use tests (such as an examination of @@ROWCOUNT) for multirow
data modifications (an INSERT, DELETE, or UPDATE based on a SELECT
statement), and take appropriate actions.
---
Dans quelle circonstance cela peut-il arriver ?
Si c'est le cas, quel usage peut-il être fait de la fonction UPDATE() ?
A +
--
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.datasapiens.com ***********************
J'ai une incompréhension sur la fonction UPDATE(col). Dans un trigger sur update, on dispose des pseudos tables Inserted et Deleted. Il semble que ces tables peuvent contenir plusieurs lignes.
les triggers sont par nature ensembliste, c'est à dire que c'est l'ordre INSERT UPDATE OU DELETE qui déclenche le code du trigger qu'il y ait une ligne ou trois millions.
Lisez l'article que j'ai écrit a cet égard... http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L5
--- copie MSDN Library If trigger actions depend on the number of rows a data modification effects, use tests (such as an examination of @@ROWCOUNT) for multirow data modifications (an INSERT, DELETE, or UPDATE based on a SELECT statement), and take appropriate actions. ---
Dans quelle circonstance cela peut-il arriver ? Si c'est le cas, quel usage peut-il être fait de la fonction UPDATE() ?
A +
-- 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.datasapiens.com ***********************