Bonjour, je souhaite mettre en places certains triggers pour créer une gestion des logs. Je m'explique.
Lors d'un insert sur une table, le trigger doit remplir deux tables avec certaines informations, seulement je ne sais pas comment récupérer certaines données. Il doit premièrement créé une ligne dans une table rassemblant toutes les actions éffectués (INSERT, UPDATE, DELETE ), seulement je cherches à récupérer la dernière requête d'un login donné, j'ai trouvé sur le net ceci :
Seulement cette requête me retourne plusieurs résultats !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT sqltxt.text FROM sys.dm_exec_connections conn INNER JOIN sys.dm_exec_sessions sson ON conn.session_id = sson.session_id CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS sqltxt WHERE sson.login_name = ORIGINAL_LOGIN()
Pièce jointe 148465
Je cherche ici à récupérer seulement la troisième ligne, les autres sont automatiques et ne m'intéresse pas. Comment ne récupérer QUE la requête exécutée par ce compte de connexion ?
En plus de récupérer certaines info permettant d'identifier l'auteur de la requête, je dois écrire dans une deuxième table plusieurs lignes quant aux actions effectuées à savoir le nom des collones modifiés/insérés, leurs valeur (ancienne et nouvelle si possible, sinon uniquement la valeur après modifications/ajout) et également l'ID du journal de log auquel il est attaché, pour obtenir quelque chose du genre :
Donc voila, je cherches à savoir ce qu'il est possible de faire avec les triggers, est-ce que dans mon cas le mieux est de tout mettre dans un seul trigger (qui écrit dans les deux tables) seulement je ne sais pas comment récupérer les informations qui viennent d'être inséré dans 'Relevés', ni comment récupérer l'ID du journal que le trigger créé (pour le lien FK entre Journal et Logs). Ou bien placer un deuxième trigger sur journal pour insérer dans la table Log.
J'ai pas trouvé grand chose sur le net quant à la gestion des logs en base de donnée, évoluant sur une instance SQL Express, j'peux oublier le Profiler :/
Des idées ?![]()
Partager