Maison > base de données > tutoriel mysql > Comment puis-je enregistrer les instructions SQL affectant une table spécifique dans SQL Server ?

Comment puis-je enregistrer les instructions SQL affectant une table spécifique dans SQL Server ?

DDD
Libérer: 2025-01-03 01:00:39
original
199 Les gens l'ont consulté

How Can I Log the SQL Statements Affecting a Specific Table in SQL Server?

Création de déclencheurs pour enregistrer le SQL affecté dans SQL Server

Dans SQL Server 2008, vous pouvez créer des déclencheurs pour capturer le SQL qui modifie une table et enregistrez-le à des fins d'audit.

Déclencheur Définition :

CREATE TRIGGER [dbo].[triggerAfterUpdate] 
   ON  [dbo].[TableWithMysteryUpdate] 
   AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;

    INSERT INTO [dbo].[LogTable] (
        ModifiedDate,
        ModifyingSQL
    )
    VALUES (
        GETDATE(),
        EVENTDATA()
    );
END
Copier après la connexion

Définition de la table de journal :

CREATE TABLE [dbo].[LogTable] (
    [LogID] [INT] NOT NULL IDENTITY(1, 1),
    [ModifiedDate] [DATETIME] NOT NULL,
    [ModifyingSQL] [NVARCHAR](MAX) NOT NULL
);
Copier après la connexion

Exemple d'utilisation :

Après la création le déclencheur, toutes les mises à jour de la table [dbo].[TableWithMysteryUpdate] seront enregistrées dans le [dbo].[LogTable].

Remarques supplémentaires :

  • La fonction EVENTDATA() capture l'instruction SQL exécutée qui a déclenché l'événement.
  • La fonction GETDATE() enregistre la date et l'heure de la mise à jour.
  • Vous pouvez personnaliser la table de journal pour inclure des informations supplémentaires telles que l'utilisateur qui a effectué la mise à jour ou les lignes concernées.
  • Cette approche offre une visibilité sur le SQL qui modifie des tables spécifiques sans nécessiter de connaissances approfondies de la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal