Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_ukaz_dlya_lab_rab.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Лабораторная работа №9 Создание триггеров

Триггеры – это предварительно определенное действие или последовательность действий, автоматически осуществляемых при выполнении операций обновления, добавления или удаления данных.

Исключительно важно в этом определении слово «автоматически». Ни пользователь, ни приложение не могут активизировать триггер, он выполняется автоматически, когда пользователь или приложение выполняют с базой данных определенные действия.

Триггер – это специальный вид хранимой процедуры. Триггеры обеспечивают проверку любых изменений на корректность, прежде чем эти изменения будут приняты.

Каждый триггер привязывается к конкретной таблице. Все производимые им модификации данных рассматриваются как одна транзакция. В случае обнаружения ошибки или нарушения целостности данных происходит откат этой транзакции. Тем самым внесение изменений запрещается. Отменяются также все изменения, уже сделанные триггером.

Создать триггер может только владелец базы данных. Это ограничение позволяет избежать случайного изменения структуры таблиц, способов связи с ними других объектов и т.п.

Компоненты триггера

  1. Ограничения, для реализации которых создается триггер.

  2. Событие, которое будет характеризовать возникновение ситуации, требующей проверки ограничений. Триггерные события чаще всего связаны с изменением состояния базы данных и состоят из вставки, удаления и обновления строк в таблице. События могут учитываться и дополнительные условия (например, добавление записи только с отрицательным значением).

  3. Предусмотренное действие осуществляется за счет выполнения процедуры или последовательности процедур, с помощью которых реализуется логика, требуемая для реализации ограничений.

Триггер выполняется неявно в каждом случае возникновения триггерного события. Приведение его в действие называют запуском триггера. С помощью триггеров достигаются следующие цели:

  • проверка корректности введенных данных и выполнение сложных ограничений целостности данных, которые трудно, если вообще возможно, поддерживать с помощью ограничений целостности, установленных для таблицы;

  • выдача предупреждений, напоминающих о необходимости выполнения некоторых действий при обновлении таблицы, реализованном определенным образом.

Типы триггеров

Существует три типа триггеров:

  1. Insert – определяет действия, которые будут выполняться после добавления новой записи в таблицу.

  2. Update – определяет действия, которые будут выполняться после изменения записи таблицы.

  3. Delete – определяет действия, которые будут выполняться после удаления записи из таблиц.

Часто в СУБД определяется большее число событий, с которыми можно связать триггеры. Например, до вставки, после вставки, до изменения, после изменения и т.д.

SQL Server поддерживает два вида триггеров: замещающие (INSTEAD OF) и завершающие (AFTER). Замещающие триггеры вызываются вместо обработки запроса на вставку, обновление или удаление, а завершающие – после обработки запроса. Всего имеется шесть возможных типов триггеров: замещающий триггер вставки, обновления и удаления и завершающий триггер вставки, обновления и удаления. 

Для триггеров вставки и обновления в SQL Server новые значения столбца обрабатываемой таблицы хранятся в псевдотаблице под названием inserted. В случае обновления и удаления старые значения каждого столбца будут храниться в псевдотаблице с именем deleted.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]