русс | укр

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

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

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

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


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

Триггеры DDL


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


Как и триггеры DML (Data Manipulation Language), триггеры DDL (Data Definition Language) срабатывают в ответ на событие. Основное различие между триггерами DML и DDL заключается в событии, запускающем их. Триггеры DDL не срабатыва­ют для инструкций INSERT, UPDATE и DELETE, Они предназначены для инструкций CREATE, ALTER, DROP и вообще для любых инструкций, модифицирующих структуру базы данных.

Этот новый тип триггера может оказаться полезным, когда требуется контроли­ровать пользователей, модифицирующих структуру базы данных, их методы моди­фикации, а также отслеживать изменения схемы. Предположим, что вы наняли вре­менных служащих по контракту для работы с базой данных, и вам нужно, чтобы они не могли удалять столбцы, не ставя вас в известность. Для этого вы можете создать триггер DDL. Вы также можете позволить пользователю удалять любые столбцы и использовать триггер DDL для регистрации изменений в таблице.

Создадим триггер DDL, который предотвра­тит удаление или изменение таблиц в базе данных Sales. Чтобы посмотреть, как он работает, до создания триггера удалите связь между таблицами Orders и Products, которая обеспечивает ссылочную целостность данных и не позволит нам удалить или изменить таблицу Products даже без наличия триггера (при попытке удаления таблицы будет появляться сообщение об ограничении внешнего ключа). Для временного удаления (и последующего восстановления) связи воспользуйтесь диаграммой БД.

Для создания триггера выполните следующие действия.

1. Откройте новый запрос SQL Server и выполните следующий код.

USE Sales

GO

CREATE TRIGGER CantDropCustomers

ON DATABASE

FOR DROP_TABLE, ALTER_TABLE

AS

PRINT 'You must disable Trigger "CantDropCustomers" to drop or alter tables! '

ROLLBACK ;

3. Выполните команду Query=>New Query и протестируй­те новый триггер путем выполнения кода



DROP TABLE Products

4. Вы должны увидеть сообщение об ошибке. В нем говорится, что вы не можете
изменять таблицы, поскольку они защищены новым триггером (рис. 14).

Рис. 14. Создан триггер на запрет удаления и обновления таблицы

5. Закройте SQL Server Management Studio.



<== предыдущая лекция | следующая лекция ==>
INSERT PHX_Customers | Основные понятия


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


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

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

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


 


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

 
 

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

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