русс | укр

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

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

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

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


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

Удаление триггеров.


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


 

Рассмотрим команду удаления триггеров DROP TRIGGER.

 

DML триггер:

DROP TRIGGER пространство_имен.имя_триггера1[, пространство_имен.имя_триггера2…] [;]

 

DDL триггер:

DROP TRIGGER имя_триггера1[, имя_триггера2…]

ON {DATABASE | ALL SERVER}

[;]

 

LOGON триггер:

DROP TRIGGER имя_триггера1[, имя_триггера2…]

ON ALL SERVER

 

причем ключевое слово DATABASE показывает, что DDL триггер(ы) имеют уровень БД, а ключевое слово ALL SERVER показывает, что DDL триггер(ы) имеют уровень сервера.

 

Следует отметить, что:

1. Уничтожение таблицы уничтожает и все связанные с ней DML триггеры.

2. Когда триггер уничтожается, то информацию о нем из представлений sys.objects, sys.triggers, sys.sql_modules также удаляется.

3. Несколько DDL триггеров можно удалить одной командой DROP TRIGGER в том случае если все они имеют или уровень БД, или уровень сервера.

4. Для того чтобы переименовать триггер, необходимо выполнить соответствующие команды DROP TRIGGER и CREATE TRIGGER.

 

Разрешение | запрещение срабатывания триггеров.

Рассмотрим команды разрешения | запрещения срабатывания триггеров.

 

{ENABLE | DISABLE} TRIGGER

{[пространство_имен.]имя_триггера1[,[пространство_имен.]имя_триггера1…] | ALL}

ON {имя_объекта | DATABASE | ALL SERVER} [;]

 

причем:

1. Пространство_имен можно указать только для DML триггеров.

2. Ключевое слово ALL показывает, что все триггеры указанного типа (тип указывается после ключевого слова ON) будут разрешены или запрещены для выполнения.

3. После ключевого слова ON можно указать либо имя_таблицы|имя_представления для DML триггеров, либо ключевое слово DATABASE для DDL триггеров уровня БД, либо ключевое слово ALL SERVER для DDL триггеров уровня сервера или для LOGON триггеров.



4. Команда DISABLE TRIGGER, не может использоваться в теле триггера, состояние которого она должна изменить, если в нем происходит выполнение действия, приводящего к повторной активации триггера в явном виде (без использования команды EXECUTE или процедуры sp_executesql). Следует также учитывать, что команды {ENABLE | DISABLE} TRIGGER, должны быть первыми в пакете команд (находиться сразу после begin или go).

 

Для разрешения | запрещения выполнения DML триггеров применительно к таблицам также можно использовать команду ALTER TABLE, которая в этом случае имеет следующий вид:

 

ALTER TABLE [ имя_БД.[пространство_имен]. | пространство_имен.] имя_таблицы

{ENABLE | DISABLE } TRIGGER

{ALL | имя_триггера1[, имя_триггера2…]

 

где имя таблицы может задаваться с использованием имени БД, в которой таблица находится и пространства имен, а триггер задается своим именем. При этом одной командой можно разрешить | запретить выполнение нескольких триггеров, заданных своими именами или сразу всех триггеров, если использовано ключевое слово ALL.

Команда ALTER TABLE имя_таблицы DISABLE TRIGGER {имя_триггера | ALL} и ALTER TABLE имя_таблицы ENABLE TRIGGER {имя_триггера | ALL} не могут одновременно использоваться в теле триггера, состояние которого они изменяют. Кроме этого команда ALTER TABLE имя_таблицы DISABLE TRIGGER {имя_триггера | ALL} не может быть применена в таких случаях, когда в теле DML триггера, отключение срабатывания которого она должна обеспечить, происходит выполнение действия, приводящего к повторной активации триггера в явном виде (без использования команды EXECUTE или процедуры sp_executesql).

 

Примеры триггеров.

Все примеры триггеров, работа которых касается таблиц, будут использовать таблицу table1, которая создана следующей командой:

Таблица table1 создана следующим образом:



<== предыдущая лекция | следующая лекция ==>
DDL тригеров. | CREATE TABLE table1 (c1 int, c2 int, c3 int primary key identity)


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


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

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

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


 


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

 
 

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

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