Sauvegarder les requêtes d'écritures sur les tables
1 réponse
arnold.fluteaux
Bonjour,
Je travaille sur SQL server 2000. Je souhaite pouvoir sauvegarder
toutes les requ=EAtes insert, update, delete que mon application cliente
lance sur mes tables de ma base. Comment puis je faire afin de
r=E9cup=E9rer ces requ=EAtes ? Dois je obligatoirement faire un trigger
sur chacune de mes tables ou puis je avoir l'information ailleurs ?
Existe-t-il un moyen de cr=E9er un trigger g=E9n=E9ral qui se
d=E9clencherait =E0 chaque =E9criture sur une table ?
MErci par avance.
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
rudi bruchez
a écrit:
Je travaille sur SQL server 2000. Je souhaite pouvoir sauvegarder toutes les requêtes insert, update, delete que mon application cliente lance sur mes tables de ma base. Comment puis je faire afin de récupérer ces requêtes ? Dois je obligatoirement faire un trigger sur chacune de mes tables ou puis je avoir l'information ailleurs ? Existe-t-il un moyen de créer un trigger général qui se déclencherait à chaque écriture sur une table ?
Bonjour,
Il n'y a pas de mécanisme simple qui te permet de le faire dans SQL Server. Tu peux utiliser des triggers, mais tu ne peux pas faire de trigger générique pour toutes les tables, et il te faudra reconstruire la requête pour connaître les colonnes réellement modifiées.
La meilleure solution est d'utiliser l'outil profiler (générateur de profils), en filtrant la colonne TextData avec les mots-clés INSERT, UPDATE, DELETE, et en filtrant par exemple la colonne ApplicationName avec le nom de ton application que tu auras attribué à la connexion, pour l'identifier. Trace les événements SP:StmtCompleted et SQL:StmtCompleted pour prendre les Instructions SQL.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
arnold.fluteaux@scj.fr a écrit:
Je travaille sur SQL server 2000. Je souhaite pouvoir sauvegarder
toutes les requêtes insert, update, delete que mon application cliente
lance sur mes tables de ma base. Comment puis je faire afin de
récupérer ces requêtes ? Dois je obligatoirement faire un trigger
sur chacune de mes tables ou puis je avoir l'information ailleurs ?
Existe-t-il un moyen de créer un trigger général qui se
déclencherait à chaque écriture sur une table ?
Bonjour,
Il n'y a pas de mécanisme simple qui te permet de le faire dans SQL Server.
Tu peux utiliser des triggers, mais tu ne peux pas faire de trigger
générique pour toutes les tables, et il te faudra reconstruire la requête
pour connaître les colonnes réellement modifiées.
La meilleure solution est d'utiliser l'outil profiler (générateur de
profils), en filtrant la colonne TextData avec les mots-clés INSERT,
UPDATE, DELETE, et en filtrant par exemple la colonne ApplicationName avec
le nom de ton application que tu auras attribué à la connexion, pour
l'identifier.
Trace les événements SP:StmtCompleted et SQL:StmtCompleted pour prendre les
Instructions SQL.
--
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation,
solutions MS SQL Server et informatique libre.
MCDBA, SCJP2
http://www.babaluga.com/
Je travaille sur SQL server 2000. Je souhaite pouvoir sauvegarder toutes les requêtes insert, update, delete que mon application cliente lance sur mes tables de ma base. Comment puis je faire afin de récupérer ces requêtes ? Dois je obligatoirement faire un trigger sur chacune de mes tables ou puis je avoir l'information ailleurs ? Existe-t-il un moyen de créer un trigger général qui se déclencherait à chaque écriture sur une table ?
Bonjour,
Il n'y a pas de mécanisme simple qui te permet de le faire dans SQL Server. Tu peux utiliser des triggers, mais tu ne peux pas faire de trigger générique pour toutes les tables, et il te faudra reconstruire la requête pour connaître les colonnes réellement modifiées.
La meilleure solution est d'utiliser l'outil profiler (générateur de profils), en filtrant la colonne TextData avec les mots-clés INSERT, UPDATE, DELETE, et en filtrant par exemple la colonne ApplicationName avec le nom de ton application que tu auras attribué à la connexion, pour l'identifier. Trace les événements SP:StmtCompleted et SQL:StmtCompleted pour prendre les Instructions SQL.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/