|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 2 ![]() |
Bonsoir,
Je suis en train de me poser une question et je ne trouve pas la réponse. Pourriez-vous m'aider ? Voici ma question : Je voudrais savoir si il est possible de créer une "fonction" qui me permettrait de connaitre la liste des lignes qui ont été modifiées au cours d'une transaction. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 930 ![]() |
Vous pouvez poser des déclencheurs et utiliser les pseudos tables pour ce faire.
A noter, MS SQL Server possède une clause OUTPUT dans toutes les requêtes de mise à jour pour ce faire... A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 2 ![]() |
Qu'est-ce qu'une pseudo table ?
|
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 930 ![]() |
Il faudrait peut être envisagé de commencer par vous former au langage SQL ?
Mon livre comme mon site web peuvent vous y aider.... Extrait de mon livre : Déclencheurs Un déclencheur (ou trigger) est un objet de la base, relatif à une table, contenant du code SQL exécuté automatiquement en fonction d’un ordre de mise à jour SQL associé. La norme SQL:1999 ne considère que les triggers portant sur les tables et se déclenchant avant ou après l’un des ordres SQL suivants : INSERT, UPDATE ou DELETE. Aucun trigger n’est déclenché directement par l’ordre MERGE. Les déclencheurs sont intéressants dans les cas suivants :
6.1 - SYNTAXE Code :
Le déclenchement d’un trigger ne concerne pas qu’une seule ligne. Sauf indication explicitement contraire, un trigger ne se déclenche qu’une fois, même si l’ordre SQL qui l’a lancé concerne des milliers de lignes. Il existe deux types de triggers : ceux qui sont destinés à agir globalement sur la table et doivent traiter les données de manière ensembliste (FOR EACH STATEMENT) et ceux qui sont déclenchés pour chacune des lignes concernées par l’ordre SQL (FOR EACH ROW). Par défaut, un trigger est déclenché de manière globale (FOR EACH STATEMENT). Dans le cas de l’UPDATE, le trigger peut être déclenché pour certaines colonnes mises à jour (UPDATE OF <liste_colonne>). Dans ce cas, la mise à jour d’une colonne qui n’est pas dans la liste <liste_colonne> ne déclenche pas le trigger. La clause WHEN, qui contient un prédicat, permet d’éviter de déclencher le trigger si certaines conditions ne sont pas remplies. Les alias de tables et les noms de corrélation (voir syntaxe) permettent d’accéder aux valeurs anciennes affectées par l’ordre SQL qui a déclenché le trigger, et aux nouvelles valeurs (après l’exécution de cet ordre). Cependant, INSERT ne peut référencer OLD ROW et OLD TABLE, et DELETE ne peut référencer NEW ROW et NEW TABLE. S’il s’agit d’alias de tables, ils peuvent être considérés comme des pseudo-tables de structure identique à la table concernée par le trigger. Bien entendu, vous devez utiliser un alias de table si le trigger est déclenché globalement et un nom de corrélation de ligne si le trigger est déclenché pour chaque ligne (FOR EACH ROW). A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com