CommencerCommencer gratuitement

Suivre l’exécution des triggers

Un point clé pour surveiller les triggers est de conserver un historique de leurs exécutions. Cela vous permet de rapprocher les moments où les triggers s’exécutent des incidents survenus dans la base de données.

Si les horaires coïncident, il est possible que les problèmes aient été causés par le trigger.

SQL Server fournit des informations sur l’exécution des triggers actuellement en mémoire via la vue sys.dm_exec_trigger_stats. Mais dès qu’un trigger est déchargé de la mémoire, les informations le concernant disparaissent également de cette vue ; vous perdez donc l’historique d’exécution du trigger.

Pour contourner cette limite, vous décidez d’utiliser la table TriggerAudit pour stocker des informations sur toute tentative de modification de lignes dans la table Orders, car il a été signalé que cette table est souvent peu réactive.

Cet exercice fait partie du cours

Créer et optimiser des déclencheurs dans SQL Server

Afficher le cours

Instructions

  • Modifiez le trigger PreventOrdersUpdate.
  • Configurez le trigger pour se déclencher lors de la mise à jour de lignes dans la table Orders.
  • Ajoutez des détails supplémentaires sur l’exécution du trigger dans la table TriggerAudit.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- Modify the trigger to add new functionality
___ TRIGGER PreventOrdersUpdate
ON ___
-- Prevent any row changes
INSTEAD OF ___
AS
	-- Keep history of trigger executions
	INSERT INTO ___ (TriggerName, ExecutionDate)
	SELECT 'PreventOrdersUpdate', 
           GETDATE();

	RAISERROR ('Updates on "Orders" table are not permitted.
                Place a new order to add new products.', 16, 1);
Modifier et exécuter le code