Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Создание триггеров

Читайте также:
  1. CMS Joomla. Установка шаблона. Создание и настройка модулей.
  2. I. Создание ИС и ИТ.
  3. III. Ограничения на создание и деятельность политической партии.
  4. IV. Создание, организационная структура и руководство ВПО
  5. Болото. Танцевальный этюд «Создание болота» под песню Дуремара.
  6. Военная реформа. Создание армии и флота.
  7. ГЛАВА II. СОЗДАНИЕ ФОНДА, ЕГО ГОСУДАРСТВЕННАЯ РЕГИСТРАЦИЯ И ЛИЦЕНЗИРОВАНИЕ ДЕЯТЕЛЬНОСТИ

Триггер - это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события - добавлением INSERT или удалением DELETE строки в заданной таблице, или модификации UPDATE данных в определенном столбце заданной таблицы реляционной базы данных.

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

1) Триггер типа UPDATE печатает определенный текст, при каждой модификации таблицы «Водители». Триггер- (рисунок 5).

Рисунок 5 - Триггер типа UPDATE

Будет возвращено сообщение «В таблицу были внесены изменения (строк обработано: 1)»,так как в результате выполнения оператора UPDATE был запущен триггер. В данном триггере мы задали вывод сообщения, чтобы можно было увидеть работу триггера;

2) Триггер типа DELETE будет сохранять все строки, удаленные из таблицы «Доставка», в таблицу «Доставка_Корзина» для последующего анализа данных. Код создания триггера DELETE, внесение строки в таблицу «Доставка» и её удаление, приведены на рисуноке 6.

Создание триггера « Доставка_Корзина»:

CREATE TRIGGER Корзина

ON Доставки

FOR DELETE

AS

INSERT INTO Доставки_Корзина

SELECT * FROM Доставки_Корзина

GO

Рисунок 6 - Триггер типа DELETE

Отметим, что надпись о количестве обработанных строк отобразилась дважды. Первый это непосредственно удаление строки, а второй запись ее в таблицу «Доставка_Корзина». Это возможно потому, что резервной таблице присвоены те же имена колонок и те же типы данных, что и в исходной таблице. Изначально таблица «Доставка_Корзина» не содержит записей, она будет заполняться по мере удаления записей из таблицы «Доставка»;

3) Триггер INSERT для таблицы «Заказы» будет проверять указано ли количество изделия (хотя бы 1). Проверка триггера представлена на рисунке 7:

-- создание триггера типа INSERT

CREATE TRIGGER Триггер3

ON Заказы

AFTER INSERT

AS

IF (SELECT КОЛИЧЕСТВО FROM ЗАКАЗЫ) < 1

ROLLBACK

 

Рисунок 7 - Проверка триггера типа INSERT


Дата добавления: 2015-07-11; просмотров: 61 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Создание таблиц| Контрольная работа №1

mybiblioteka.su - 2015-2024 год. (0.005 сек.)