Wprowadzenie

Tworzenie i optymalizacja triggerów w SQL Server

Florin Angelescu

Instructor

Czym jest wyzwalacz?

  • Specjalny rodzaj procedury składowanej
  • Wykonywana po wystąpieniu zdarzenia na serwerze bazy danych

Jak działa wyzwalacz

Tworzenie i optymalizacja triggerów w SQL Server

Typy wyzwalaczy (według poleceń T-SQL)

  • Wyzwalacze języka DML (Data Manipulation Language)
    • Instrukcje INSERT, UPDATE lub DELETE
  • Wyzwalacze języka DDL (Data Definition Language)
    • Instrukcje CREATE, ALTER lub DROP
  • Wyzwalacze logowania
    • Zdarzenia LOGON
Tworzenie i optymalizacja triggerów w SQL Server

Typy wyzwalaczy (według zachowania)

  • Wyzwalacz AFTER

    • Oryginalna instrukcja zostaje wykonana
    • Następnie uruchamiane są dodatkowe instrukcje
  • Przykłady zastosowań

    • Przebudowa indeksu po dużym wstawieniu danych
    • Powiadomienie administratora o aktualizacji danych
Tworzenie i optymalizacja triggerów w SQL Server

Typy wyzwalaczy (według zachowania)

  • Wyzwalacz INSTEAD OF

    • Oryginalna instrukcja nie zostaje wykonana
    • W jej miejsce wykonywana jest instrukcja zastępcza
  • Przykłady zastosowań

    • Blokowanie wstawiania danych
    • Blokowanie aktualizacji
    • Blokowanie usuwania
    • Blokowanie modyfikacji obiektów
    • Powiadomienie administratora
Tworzenie i optymalizacja triggerów w SQL Server

Definicja wyzwalacza (z AFTER)

-- Create the trigger by giving it a descriptive name
CREATE TRIGGER ProductsTrigger

-- The trigger needs to be attached to a table ON Products
-- The trigger behavior type AFTER INSERT
-- The beginning of the trigger workflow AS
-- The action executed by the trigger PRINT ('An insert of data was made in the Products table.');
Tworzenie i optymalizacja triggerów w SQL Server

Definicja wyzwalacza (z INSTEAD OF)

-- Create the trigger by giving it a descriptive name
CREATE TRIGGER PreventDeleteFromOrders
-- The trigger needs to be attached to a table
ON Orders
-- The trigger behavior type
INSTEAD OF DELETE
-- The beginning of the trigger workflow
AS
-- The action executed by the trigger
PRINT ('You are not allowed to delete rows from the Orders table.');
Tworzenie i optymalizacja triggerów w SQL Server

AFTER a INSTEAD OF

CREATE TRIGGER MyFirstAfterTrigger
ON Table1
-- Triggered after 
-- the firing event (UPDATE)
AFTER UPDATE
AS
{trigger_actions_section};
CREATE TRIGGER MyFirstInsteadOfTrigger
ON Table2
-- Triggered instead of 
-- the firing event (UPDATE)
INSTEAD OF UPDATE
AS
{trigger_actions_section};
Tworzenie i optymalizacja triggerów w SQL Server

Czas na ćwiczenia!

Tworzenie i optymalizacja triggerów w SQL Server

Preparing Video For Download...