Introductie

Triggers in SQL Server bouwen en optimaliseren

Florin Angelescu

Instructor

Wat is een trigger?

  • Speciaal type stored procedure
  • Voert uit wanneer er een gebeurtenis op de databaseserver optreedt

Hoe een trigger werkt

Triggers in SQL Server bouwen en optimaliseren

Typen triggers (op basis van T-SQL-commando's)

  • Data Manipulation Language (DML)-triggers
    • INSERT-, UPDATE- of DELETE-instructies
  • Data Definition Language (DDL)-triggers
    • CREATE-, ALTER- of DROP-instructies
  • Logon-triggers
    • LOGON-gebeurtenissen
Triggers in SQL Server bouwen en optimaliseren

Typen triggers (op basis van gedrag)

  • AFTER-trigger

    • De oorspronkelijke instructie wordt uitgevoerd
    • Extra instructies worden getriggerd
  • Voorbeelden

    • Index herbouwen na een grote insert
    • Admin melden bij gegevensupdate
Triggers in SQL Server bouwen en optimaliseren

Typen triggers (op basis van gedrag)

  • INSTEAD OF-trigger

    • De oorspronkelijke instructie wordt niet uitgevoerd
    • Een vervangende instructie draait in plaats daarvan
  • Voorbeelden

    • Invoegen voorkomen
    • Updates voorkomen
    • Verwijderingen voorkomen
    • Objectwijzigingen voorkomen
    • Admin melden
Triggers in SQL Server bouwen en optimaliseren

Triggerdefinitie (met AFTER)

-- Maak de trigger met een duidelijke naam
CREATE TRIGGER ProductsTrigger

-- Koppel de trigger aan een tabel ON Products
-- Het type triggergedrag AFTER INSERT
-- Begin van de triggerworkflow AS
-- Actie die de trigger uitvoert PRINT ('Er is een insert uitgevoerd in de tabel Products.');
Triggers in SQL Server bouwen en optimaliseren

Triggerdefinitie (met INSTEAD OF)

-- Maak de trigger met een duidelijke naam
CREATE TRIGGER PreventDeleteFromOrders
-- Koppel de trigger aan een tabel
ON Orders
-- Het type triggergedrag
INSTEAD OF DELETE
-- Begin van de triggerworkflow
AS
-- Actie die de trigger uitvoert
PRINT ('Je mag geen rijen verwijderen uit de tabel Orders.');
Triggers in SQL Server bouwen en optimaliseren

AFTER vs. INSTEAD OF

CREATE TRIGGER MyFirstAfterTrigger
ON Table1
-- Getriggerd na 
-- de gebeurtenis (UPDATE)
AFTER UPDATE
AS
{trigger_actions_section};
CREATE TRIGGER MyFirstInsteadOfTrigger
ON Table2
-- Getriggerd in plaats van 
-- de gebeurtenis (UPDATE)
INSTEAD OF UPDATE
AS
{trigger_actions_section};
Triggers in SQL Server bouwen en optimaliseren

Laten we oefenen!

Triggers in SQL Server bouwen en optimaliseren

Preparing Video For Download...