Разработка и сопровождение баз данных в среде СУБД MS SQL Server 2000. Сивохин А.В - 84 стр.

UptoLike

AFTERзапуск триггера после успешного выполнения команд списка,
триггеры данного класса могут быть созданы только для таблиц, и не могут
быть созданы для представлений;
INSTEAD OFтриггер вызывается вместо выполнения команд списка,
могут быть определены как для таблиц, так и для представлений.
Можно определить несколько AFTER – триггеров для каждой операции
INSERT, UPDATE
и DELETE. По умолчанию все триггеры являются AFTER –
триггерами. Триггеры нельзя создавать для временных или системных таблиц.
Команда создания триггера должна быть первой в пакете и применяться только к
одной таблице. Ее формат следующий:
CREATE TRIGGER Имя триггера
ON {Имя таблицы\Имя представления}
[WITH ENCRYPTION] -- шифрование кода триггера;
{ {{FOR\AFTER\INSTEAD OF}
{[DELETE] [,] [INSERT] [,] [UPDATE]}
[WITE APPEND] -- только для версий 6.5 и ниже;
[NOT FOR REPLICATION] -- не
для репликации;
AS sql_statement […n] -- тело триггера;
}
|
{{FOR\AFTER\INSTEAD OF}
{[INSERT] [,] [UPDATE]}
[WITE APPEND] -- только для версий 6.5 и ниже;
[NOT FOR REPLICATION] -- не длярепликации;
AS {IF UPDATE (column) -- при изменении столбца;
[{AND\OR}UPDATE (column) […n]]}-- тоже;
IF (COLUMNS_UPDATED() {bitwise_operator}
Update_bitmask)
{comparison_operator}column_bitmask […n]
}
sql_statement […n] -- тело триггера.
}
}
Вторая альтернатива команды {IF UPDATE…} используется для детального
анализа изменений содержимого колонок с помощью специальных функций,
битовых масок, операторов побитовой обработки, оператор сравнения и логических
операторов.
    • AFTER – запуск триггера после успешного выполнения команд списка,
      триггеры данного класса могут быть созданы только для таблиц, и не могут
      быть созданы для представлений;
    • INSTEAD OF – триггер вызывается вместо выполнения команд списка,
      могут быть определены как для таблиц, так и для представлений.
    Можно определить несколько AFTER – триггеров для каждой операции
INSERT, UPDATE и DELETE. По умолчанию все триггеры являются AFTER –
триггерами. Триггеры нельзя создавать для временных или системных таблиц.
Команда создания триггера должна быть первой в пакете и применяться только к
одной таблице. Ее формат следующий:
    CREATE TRIGGER Имя триггера
    ON {Имя таблицы\Имя представления}
    [WITH ENCRYPTION] -- шифрование кода триггера;
    { {{FOR\AFTER\INSTEAD OF}
    {[DELETE] [,] [INSERT] [,] [UPDATE]}
    [WITE APPEND] -- только для версий 6.5 и ниже;
    [NOT FOR REPLICATION] -- не для репликации;
    AS sql_statement […n] -- тело триггера;
      }
    |
    {{FOR\AFTER\INSTEAD OF}
    {[INSERT] [,] [UPDATE]}
    [WITE APPEND] -- только для версий 6.5 и ниже;
    [NOT FOR REPLICATION] -- не длярепликации;
    AS {IF UPDATE (column) -- при изменении столбца;
    [{AND\OR}UPDATE (column) […n]]}-- тоже;
    IF (COLUMNS_UPDATED() {bitwise_operator}
    Update_bitmask)
    {comparison_operator}column_bitmask […n]
    }
    sql_statement […n] -- тело триггера.
    }
    }

    Вторая альтернатива команды {IF UPDATE…} используется для детального
анализа изменений содержимого колонок с помощью специальных функций,
битовых масок, операторов побитовой обработки, оператор сравнения и логических
операторов.