Urmărirea execuțiilor triggerului
Un factor important în monitorizarea triggerelor este păstrarea unui istoric al execuțiilor acestora. Acesta îți permite să corelezi momentele în care rulează triggerele cu eventualele probleme apărute în baza de date.
Dacă momentele coincid, este posibil ca problemele să fi fost cauzate de trigger.
SQL Server oferă informații despre execuția triggerelor stocate în prezent în memorie prin intermediul vizualizării sys.dm_exec_trigger_stats. Totuși, odată ce un trigger este eliminat din memorie, toate informațiile despre el dispar și din vizualizare, pierzând astfel istoricul execuțiilor.
Pentru a depăși această limitare, decizi să folosești tabelul TriggerAudit pentru a stoca informații despre orice încercare de modificare a rândurilor din tabelul Orders, deoarece utilizatorii au raportat că tabelul nu răspunde frecvent.
Acest exercițiu face parte din cursul
Crearea și optimizarea triggerelor în SQL Server
Instrucțiuni pentru exercițiu
- Modifică triggerul
PreventOrdersUpdate. - Setează triggerul să se declanșeze atunci când rândurile din tabelul
Orderssunt actualizate. - Adaugă detalii suplimentare despre execuția triggerului în tabelul
TriggerAudit.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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);