Začněte nyníZačněte zdarma

Sledování spuštění triggerů

Při monitorování triggerů je důležité mít k dispozici historii jejich spuštění. Díky tomu můžeš porovnat, kdy se triggery spustily, a zjistit, zda to nesouvisí s problémy, které se v databázi vyskytly.

Pokud se časy shodují, je možné, že problémy způsobil právě daný trigger.

SQL Server poskytuje informace o spuštění triggerů, které jsou aktuálně uloženy v paměti, prostřednictvím pohledu sys.dm_exec_trigger_stats. Jakmile je ale trigger z paměti odstraněn, všechny informace o něm z tohoto pohledu zmizí – a ty tak přijdeš o historii jeho spuštění.

Aby ses tomuto omezení vyhnul/a, rozhodneš se využít tabulku TriggerAudit k ukládání informací o všech pokusech o úpravu řádků v tabulce Orders. Uživatelé totiž hlásí, že tato tabulka bývá často nedostupná.

Toto cvičení je součástí kurzu

Tvorba a optimalizace triggerů v SQL Serveru

Zobrazit kurz

Pokyny k cvičení

  • Uprav trigger PreventOrdersUpdate.
  • Nastav, aby se trigger spouštěl při aktualizaci řádků v tabulce Orders.
  • Doplň do tabulky TriggerAudit další podrobnosti o spuštění triggeru.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

-- 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);
Upravit a spustit kód