русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Триггеры или ограничения


Дата добавления: 2013-12-23; просмотров: 1694; Нарушение авторских прав


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

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

Вы можете создать триггеры при использовании оператора Transact-SQL CREATE TRIGGER. Оператор CREATE TRIGGER имеет следующий синтаксис.

 

CREATE TRIGGER [ schema_name . ]trigger_name

ON { table | view }

[ WITH <dml_trigger_option> [ ,...n ] ]

{ FOR | AFTER | INSTEAD OF }

{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }

[ WITH APPEND ]

[ NOT FOR REPLICATION ]

AS { sql_statement [ ; ] [ ...n ] | EXTERNAL NAME <method specifier [ ; ] > }

 

Существует две категории триггеров DML:

Триггеры AFTER. Триггеры AFTER выполняются после действия операторов INSERT, UPDATE или DELETE. Определение триггера AFTER имеет то же самое определение, что и триггер FOR, который являлся единственным доступным типом в более ранних версиях Microsoft SQL Server. Вы можете определять триггеры AFTER только для таблиц.

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

Главное преимущество триггеров заключается в том, что они могут содержать сложную логику обработки с использованием кода Transact-SQL. Поэтому, триггеры поддерживают больший набор функциональных возможностей по сравнению с ограничениями. Однако, целостность данных должна всегда реализовываться на самом низком уровне – уровне ограничений, до тех пор пока они отвечают требованиям приложения.

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

■ Ограничение FOREIGN KEY может проверять значение столбца только на точное соответствие значению другого столбца, если в разделе REFERENCES не определено каскадирование некоторого действия по ссылкам.



■ Ограничения могут сообщать об ошибках только через стандартную систему сообщений об ошибках. Если Ваше приложение требует более сложной обработки ошибок, Вы должны использовать триггер.

Триггеры могут каскадировать изменения через связанные таблицы в базе данных; однако, эти изменения могут быть выполнены более эффективно через ограничения:

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

■, Если на таблице с триггерами существуют ограничения, то они проверяются после триггера INSTEAD OF, но до триггера AFTER. Если ограничения нарушены, то действия триггера INSTEAD OF откатываются, а триггер AFTER не выполняется.




<== предыдущая лекция | следующая лекция ==>
Что такое триггер? | Определение


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.