Journalisation SQL ayant affecté une table
Pour déterminer la source des mises à jour d'une colonne, vous pouvez créer un déclencheur sur la table affectée qui capture le SQL responsable des modifications. Voyons comment y parvenir dans Microsoft SQL Server 2008.
Création du déclencheur
À l'aide d'une instruction DDL, vous pouvez créer un déclencheur qui enregistre le SQL pour les mises à jour de table. :
CREATE TRIGGER trigger_name ON table_name AFTER UPDATE AS BEGIN -- Declare a variable to store the executed SQL DECLARE @sql_text VARCHAR(MAX); -- Retrieve the executed SQL from the context_info() function SET @sql_text = CAST(EVENTDATA() AS NVARCHAR(MAX)); -- Insert the SQL text into a log table or perform other desired actions INSERT INTO log_table (sql_text) VALUES (@sql_text); END;
Accès aux exécutés SQL
Une fois le déclencheur créé, la fonction EVENTDATA() peut être utilisée dans le code du déclencheur pour capturer le SQL exécuté. La fonction EVENTDATA() permet d'accéder aux informations sur l'événement de base de données en cours, y compris le texte SQL qui l'a provoqué. En extrayant ces informations, vous pouvez identifier la source des mises à jour des colonnes.
Remarques supplémentaires :
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!