11547

Триггеры. Сравнение триггеров и хранимых процедур

Лабораторная работа

Информатика, кибернетика и программирование

Триггеры 1. Сравнение триггеров и хранимых процедур Хранимые процедуры Триггеры Являются самостоятельным объектом базы данных Привязываются к таблице или виду Явно вызываются на

Русский

2013-04-08

57 KB

5 чел.

Триггеры

1. Сравнение триггеров и хранимых процедур

Хранимые процедуры

Триггеры

Являются самостоятельным объектом базы данных

Привязываются к таблице или виду

Явно вызываются на выполнение командой EXECUTE

Реагируют на события, связанные с таблицей-владельцем или видом-владельцем

Могут иметь входные и/или выходные параметры, коды возврата

Не имеют входных/выходных параметров и кодов возврата

Могут выполняться в отдельной транзакции

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

2. Виды триггеров

Объект

Действие

Триггер

Таблица/вид

Вставка строк INSERT

Вместо вставки строк INSTEAD OF

После вставки строк FOR или AFTER

Модификация строк UPDATE

Вместо модификации строк INSTEAD OF

После модификации строк FOR или AFTER

Удаление строк DELETE

Вместо удаления строк INSTEAD OF

После удаления строк FOR или AFTER

3. Общий синтаксис создания триггера

CREATE TRIGGER <Имя_триггера>

ON <Имя_таблицы_или_вида>

{FOR|AFTER|INSTEAD OF} {[INSERT] [,] [UPDATE] [,] [DELETE]}

AS <SQL-выражения, составляющие тело триггера>


4. Алгоритм обработки триггеров

5. Содержимое таблиц INSERTED и DELETED в зависимости от вида триггера

Вид триггера

Таблицы INSERTED и DELETED

INSTEAD OF INSERT

INSERTED содержит вставляемые в таблицу записи. DELETED пуста.

FOR INSERT

INSERTED содержит вставленные в таблицу записи. DELETED пуста.

INSTEAD OF UPDATE

INSERTED содержит новые значения модифицируемых записей. DELETED содержит старые значения модифицируемых записей.

FOR UPDATE

INSERTED содержит новые значения модифицированных записей. DELETED содержит старые значения модифицированных записей.

INSTEAD OF DELETE

INSERTED пуста. DELETED содержит удаляемые записи.

FOR DELETE

INSERTED пуста. DELETED содержит удаленные записи.

Таблицы INSERTED и DELETEDвиртуальные, существуют только в период выполнения триггера.

6. Примеры

--6.1. Триггер на поддержание актуального количества товаров при добавлении поставок

CREATE TRIGGER tr_supply_fi

ON supply

FOR INSERT

AS

 UPDATE detail

 SET detail_quantity = d.detail_quantity + i.supply_quantity

 FROM detail d JOIN INSERTED i ON d.detail_id = i.detail_id

--6.2. Триггер на поддержание актуального количества товаров при удалении поставок

CREATE TRIGGER tr_supply_fd

ON supply

AFTER DELETE

AS

 UPDATE detail

 SET detail_quantity = detail.detail_quantity - DELETED.supply_quantity

 FROM detail JOIN DELETED ON detail.detail_id = DELETED.detail_id

--6.3. Триггер на поддержание актуального количества товаров при отпуске деталей в цеха

CREATE TRIGGER tr_delivery_string_fi

ON delivery_string

FOR INSERT

AS

 UPDATE detail

 SET detail_quantity = d.detail_quantity - i.delivery_quantity

 FROM detail d JOIN INSERTED i ON d.detail_id = i.detail_id

--6.3. Проверка допустимости значения даты поставки при добавлении новой поставки

CREATE TRIGGER tr_supply_ii

ON supply

INSTEAD OF INSERT

AS

 IF EXISTS (SELECT *

            FROM INSERTED

      WHERE supply_date > GETDATE())

 BEGIN

   RAISERROR ('Недопустимое значение даты поставки!', 16, 1)

   ROLLBACK TRAN

 END

 ELSE

   INSERT INTO supply (supplier_id, detail_id, supply_date, supply_quantity)

     SELECT supplier_id, detail_id, supply_date, supply_quantity

     FROM INSERTED

 

--6.4. Проверка допустимости значения даты поставки при редактировании существующей поставки

CREATE TRIGGER tr_supply_iu

ON supply

INSTEAD OF UPDATE

AS

IF UPDATE (supply_date)

 IF EXISTS (SELECT *

            FROM INSERTED

      WHERE supply_date > GETDATE())

 BEGIN

   RAISERROR (' Недопустимое значение даты поставки!', 16, 1)

   ROLLBACK TRAN

 END

 ELSE

   UPDATE supply

   SET supplier_id = i.supplier_id,

       detail_id = i.detail_id,

       supply_date = i.supply_date,

       supply_quantity = i.supply_quantity

   FROM supply s JOIN INSERTED i on s.supply_id = i.supply_id


Выполнение тела триггера

ыполнение операции модификации таблицы в оперативной памяти сервера

Триггер INSTEAD OF существует?

На сервер поступает команда модификации таблицы, например INSERT

Проверка ограничений целостности таблицы

Триггер FOR|AFTER существует?

Заполнение таблиц INSERTED и DELETED

Заполнение таблиц INSERTED и DELETED

Выполнение тела триггера

Физическая фиксация изменений в таблице (фиксация транзакции)

Конец

Нет

Да

Да


 

А также другие работы, которые могут Вас заинтересовать

21727. Устройства массовой памяти на сменных носителях 180 KB
  Устройства массовой памяти на сменных носителях Вопросы: Магнитооптические диски. Оптические диски CD DVD PD. Эти устройства подключаются к компьютеру с помощью следующих интерфейсов: АТА SCSI USB Наибольшей популярностью пользуются в настоящее время CD DVD и магнитооптические диски. Магнитооптические диски.
21728. Аудио система персонального компьютера 245.5 KB
  Собственно цифровые каналы звуковой карты проходят через интерфейсные схемы например MIDI от шины расширения до ЦАП и от АЦП обратно к шине. На этих картах располагается и порт традиционного MIDI. Интерфейс MIDI Цифровой интерфейс музыкальных инструментов MIDI Musical Instrument Digital Interface является последовательным асинхронным интерфейсом с частотой передачи 3125 Кбит с. В настоящее время интерфейс MIDI имеют и дорогие синтезаторы и дешевые музыкальные клавиатуры пригодные в качестве устройств ввода компьютера.
21729. Коммуникационные устройства 306.5 KB
  Обмен данными требуется для различных целей: передачи файлов совместного использования периферийных устройств например принтеров доступа к разнообразным информационным услугам Интернета и частных сетей приема и передачи факсимильных сообщений посылки сообщений на пейджеры и мобильные телефоны установление голосовой связи IPтелефония видеосвязи и даже совместных игр по сети. СОМпорт Последовательный интерфейс для передачи данных в одном направлении использует одну сигнальную линию по которой информационные биты передаются друг за...
21730. Беспроводные интерфейсы связи 575 KB
  Инфракрасный интерфейс IrDA 2. В беспроводных интерфейсах используются электромагнитные волны инфракрасного IrDA Infrared Data Association и радиочастотного Blue Tooth диапазонов. Инфракрасный интерфейс IrDA 1. Общая характеристика IrDA Применение излучателей и приемников инфракрасного ИК диапазона позволяет осуществлять беспроводную связь между парой устройств удаленных на расстояние нескольких метров.
21731. Общая характеристика периферийных устройств ЭВМ 68.5 KB
  Общая характеристика периферийных устройств ЭВМ Вопросы: Введение в дисциплину периферийные устройства ПУ ЭВМ. Введение в дисциплину периферийные устройства ПУ ЭВМ. Как известно совместимый IBM PC компьютер организован по фоннеймановской архитектуре которая была сформулирована Джорджем фон Нейманом еще в 1945году и имеет следующие принципы: ЭВМ состоит из блока управления БУ и арифметикологического устройства АЛУ. Согласно этой архитектуры ЭВМ можно условно разделить на устройства непосредственной обработки информации и...
21732. Клавиатура. Манипуляторы-указатели 103 KB
  Вопросы: Общая характеристика клавиатуры. Интерфейс клавиатуры и мыши.Общая характеристика клавиатуры. Емкостные датчики и датчики Холла не имеют подвижных контактов и являются наиболее надежными для клавиатуры.
21733. Принципы вывода изображений 209 KB
  Принципы организации видеопамяти. Такой способ отображения называется линейным линейной последовательности пикселов соответствует линейная последовательность бит или групп бит видеопамяти. Многослойное отображение пикселов памяти Таким образом объем видеопамяти в битах V требуемый для хранения образа экрана определяется как произведение количества пикселов p в строке на количество строк n и на количество бит на пиксел b. Если физический объем видеопамяти превышает объем необходимый для отображения матрицы всего экрана видеопамять...
21734. Обработка видеоизображений 128.5 KB
  Стандарты кодеков изображений MPEG. Более совершенные устройства позволяют записывать в реальном времени последовательность видеокадров выполняя их сжатие методами MJPEG DVI или INDEO MPEGкодирование требует слишком больших ресурсов для выполнения преобразования в реальном времени. MPEG ряд кодеков MPEG1 MPEG2 MPEG4 MPEG7. Стандарты кодеков изображений MPEG.
21735. Дисплей и его разновидности 147 KB
  Крупицы люминофора Зерно триады экрана Экран Заполнение экрана Шаг матрицы зерен экрана Рис 5. Шаг матрицы зерен экрана Dot Pitch принято измерять в миллиметрах. Однако отождествлять эти два параметра не очень корректно и параметр Dot Pitch лучше перевести как зернистость экрана но не размер зерна. У 15 мониторов проволочка одна она расположена снизу на высоте примерно 1 3 высоты экрана.