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

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

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

Конец

Нет

Да

Да


 

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

33037. Финансы: их сущность и роль в системе отношений рыночной экономики 51.5 KB
  Если деньги можно считать всеобщим эквивалентом то финансы – это экономический инструмент распределения и перераспределения валового внутреннего продукта ВВП и национального дохода орудие контроля за образованием и использованием фондов денежных средств. Главное назначение финансов состоит в том чтобы путем создания денежных доходов и фондов обеспечить не только потребности государства и предприятий в денежных средствах но и контроль за расходованием финансовых ресурсов. Финансы это не сами денежные средства а отношения между...
33038. Функции финансов и их проявление в системе финансовых отношений 55 KB
  Необходимым элементом рыночной экономики являются денежные отношения складывающиеся между экономическими субъектами. Финансы это экономические отношения по поводу образования распределения и использования целевых денежных фондов. Финансы это экономическая категория а любая экономическая категория выражает определенные экономические отношения. Финансовые отношения имеют целый ряд особенностей по сравнению с другими экономическими отношениями: денежные отношения; распределительные отношения; связаны с формированием и использованием...
33039. Финансовая система: понятие, назначение. Структура и принципы организации финансовой системы РФ 43.5 KB
  Структура и принципы организации финансовой системы РФ. Возглавляет систему финансовых органов РФ Министерство финансов РФ которое является исполнительным органом обеспечивающим проведение единой финансовой бюджетной налоговой и валютной политики и осуществляющим общее руководство организацией финансов в РФ. Функции финансовой деятельности выполняют также органы государственного управления РФ и субъектов РФ в рамках отнесенных к их компетенции сфер управления. Структура финансовой системы это совокупность её элементов и связей...
33040. Государственные внебюджетные фонды: Пенсионный фонд, Фонд социального страхования, Фонд обязательного медицинского страхования: цели, задачи, порядок формирования и расходования финансовых ресурсов. Роль внебюджетных фондов в системе финансов 53.5 KB
  Государственные внебюджетные фонды: Пенсионный фонд Фонд социального страхования Фонд обязательного медицинского страхования: цели задачи порядок формирования и расходования финансовых ресурсов.; Фонд социального страхования РФ создан в 1990 г.; Фонд обязательного медицинского страхования создан в 1991 г. Вторым по объёму аккумулируемых средств государственным внебюджетным фондом является Фонд социального страхования РФ.
33041. Финансовые рынки и финансовые посредники: понятие, виды, функции 53 KB
  Финансовый рынок представляет собой сферу реализации финансовых активов и экономических отношений возникающих между продавцами и покупателями этих активов. Функции финансового рынка: Реализация стоимости и потребительной стоимости заключённой в финансовых активах. Организация процесса доведения финансовых активов до потребителей Финансовое обеспечение процессов инвестирования и потребления Воздействие на денежное обращение В процессе выполнения финансовым рынком 1й функции Реализация стоимости и потребительной стоимости...
33042. Финансовый механизм: понятие, цель и задачи, структура 49 KB
  Цель финансового механизма в обеспечении эффективного функционирования финансовой системы. Задачи финансового механизма: обеспечение стабильного кругооборота финансовых ресурсов; обеспечение перераспределения финансовых ресурсов в соответствии с потребностями отдельных субъектов хозяйствования; уменьшение риска потерь финансовых ресурсов субъектами хозяйствования. Организационная функция финансового механизма направлена на организацию финансовых отношений как объекта управления т. Управленческая функция финансового механизма...
33043. Органы управления финансами в РФ: перечень, характеристика. Особенности реформы государственного управления 2004г 109.5 KB
  Функции органов представительной власти Президента РФ И Центрального Банка в области регулирования финансов. Структура и функции органов власти осуществляющих управление финансами в условиях реализации административной реформы претерпели существенные изменения. Функции этих органов разделены на четыре вида: нормотворческая контроль и надзор: управление государственным имуществом; оказание государственных услуг. В систему федеральных органов исполнительной власти входят федеральные министерства федеральные службы и федеральные...
33044. Министерство финансов РФ: цели и задачи деятельности 45 KB
  К основным задачам Министерства финансов РФ относятся: совершенствование бюджетной системы и развитие бюджетного федерализма; разработка и реализация единой финансовой бюджетной налоговой и валютной политики в РФ; концентрация финансовых ресурсов на приоритетных направлениях социальноэкономического развития; разработка проекта федерального бюджета и обеспечение исполнения федерального бюджета; составление отчета об исполнении федерального бюджета и консолидированного бюджета РФ; разработка программ государственных...
33045. Финансовая политика: понятие , задачи, содержание, структура. Взаимосвязь финансовой политики и социально-экономической политики государства. Содержание и особенности финансовой политики в 2013 г 35.88 KB
  Взаимосвязь финансовой политики и социальноэкономической политики государства. Содержание и особенности финансовой политики в 2013 г. Задачи финансовой политики: обеспечение условий для формирования максимально возможных финансовых ресурсов; рациональное распределение и использование финансовых ресурсов; организация регулирования и стимулирования экономических и социальных процессов финансовыми методами; создание эффективной системы управления финансами. В разработке финансовой политики участвуют законодательные Гос.