OVH Cloud OVH Cloud

Sauvegarder les requêtes d'écritures sur les tables

1 réponse
Avatar
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.

1 réponse

Avatar
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/