Студопедия  
Главная страница | Контакты | Случайная страница

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

Программирование триггера

Читайте также:
  1. I. Программирование на CF Pascal
  2. PPUZKK 4230-программирование и прогнозирование урожаев зерновых культур и картофеля
  3. PPUZKK 4230-программирование и прогнозирование урожаев зерновых культур и картофеля
  4. VII.Модульное программирование.
  5. Введение в программирование для Windows
  6. Введение в программирование на языке Pascal Работа с величинами. Ввод-вывод Выражения. Линейные алгоритмы
  7. Информатика и программирование
  8. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
  9. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
  10. Логическое программирование.

Внутри триггера допускается использование практически любых команд Transact-SQL, включая вызовы хранимых процедур и обращение к функциям пользователя.

Для определения уровня вложенности триггеров используется следующая команда:

TRIGGER_NESTLEVEL([object_id])

Object_id. Определяет идентификационный номер триггера, который может быть получен с помощью команды OBJECT_ID('name_object'). Если параметр object_ id опускается, то возвращается уровень вложенности текущего триггера.

Для получения списка столбцов, которые были изменены при выполнении команды вставки (INSERT) или изменения (UPDATE), вызвавшей выполнение триггера, можно использовать следующую функцию:

COLUMNS_UPDATED()

Эта функция возвращает двоичное число, каждый бит которого, начиная с младшего, соответствует одному столбцу таблицы. Если бит установлен в 1, то соответствующий столбец был изменен.

Также для определения факта изменения столбца можно использовать функцию:

UPDATE (column_name)

column_name. Определяет имя столбца, который необходимо проверить. Если функция возвращает значение TRUE, то значение указанного столбца было изменено.

Для получения информации о количестве строк, которое будет изменено при успешном завершении триггера, можно использовать функцию:

@@ROWCOUNT

Возвращает количество строк, которое было изменено последней командой.

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

Команда INSERT. В таблице inserted будут содержаться все строки, которые пользователь пытается вставить в таблицу. Таблица deleted не будет содержать ни одной строки. После завершения триггера все строки из таблицы inserted будут вставлены в таблицу.

Команда DELETE. В таблице deleted будет приведен список строк, которые пользователь пытается удалить. Триггер может проверить каждую строку и решить, разрешено ли ее удаление. Таблица inserted не будет содержать ни одной строки.

Команда UPDATE. При выполнении этой команды таблица deleted будет содержать старые значения строк, которые будут удалены при успешном завершении триггера. Новые значения строк содержатся в таблице inserted. Эти строки будут добавлены в исходную таблицу после успешного завершения триггера.

В логические таблицы inserted и deleted запрещено вносить любые изменения.




Дата добавления: 2014-12-19; просмотров: 48 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав