Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Янин В.Л. "Новгородские акты XII-XV Хронологический комментарий" (История)

Майринк Г. "Белый доминиканец " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 2" (Художественная литература)

Петров Г.И. "Отлучение Льва Толстого " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 1 " (Художественная литература)
Реклама

Microsoft SQL server. Реализация и обслуживание Учебный курс - Microsoft press

Microsoft press Microsoft SQL server. Реализация и обслуживание Учебный курс — Microsoft Press, 2007. — 766 c.
Предыдущая << 1 .. 137 138 139 140 141 142 < 143 > 144 145 146 147 148 149 .. 343 >> Следующая

AS { инструкция_зр1 [ ; ] [ , n ] | EXTERNAL NAME < method specifier > [
, ] }
<dll_tngger_option> : ? =
[ ENCRYPTION ]
[ EXECUTE AS Clause ]
Занятие 3
Реализация триггеров gQ-j
<method_specifier> .:=
имя_сборки. имя_класса. название_метода
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ Группы событий
Описание событий, для которых допустимо использование DDL-триггеров, есть в разделах, посвященных DDL-триггерам, в Электронной документации по SQL Server 2005.
Приведем пример DDL-триггера, запрещающего удаление таблицы или генерирующего оповещение о ее изменении:
CREATE TRIGGER tddl_tabledropalterprevent ON DATABASE
FOR DROP_TABLE, ALTER_TABLE AS
PRINT 'Запрещено изменение и удаление таблиц.'
ROLLBACK ,
Контрольный вопрос
1. Назовите два типа триггеров.
2. Каково их основное назначение?
Ответы на контрольный вопрос
1. SQL Server 2005 поддерживает DML- и DDL-триггеры.
2. DML-триггеры запускаются при выполнении над указанной таблицей инструкций INSERT, UPDATE и DELETE. DML-триггеры в основном используются для выполнения операций над данными, измененными в таблице. DDL-триггеры запускаются при выполнении на сервере DDL-команд. DDL-триг-геры в основном применяются в целях обеспечения безопасности и аудита.
Упражнение: создание DML- и DDL-триггеров
В этих упражнениях вы создадите DM L-триггер, отслеживающий изменения в прайс-листе, и DDL-триггер, запрещающий удаление таблиц из базы данных.
Упражнение 1. Создание DML-триггера
В этом упражнении вы создадите DM L-триггер для таблицы Production. Product, отслеживающий изменения в прайс-листе.
1. При необходимости запустите SSMS, подключитесь к своему экземпляру, откройте окно нового запроса и измените контекст на базу данных Adventure Works.
2. Создайте контрольную таблицу, выполнив следующую команду:
CREATE TABLE Production.ProductAudit
(AuditID int identity(1,1) PRIMARY KEY,
ProductID int NOT NULL,
ListPriceBefore money NOT NULL,
ListPnceAfter money NOT NULL,
302
Создание функций, хранимых процедур и триггеров
Глава 9
AuditDate datetime NOT NULL,
ChangeUser sysname NOT NULL);
3. Создайте триггер для таблицы Production. Product, который протоколирует все изменения в контрольной таблице. Для простоты все сохраните в XML-столбце:
CREATE TRIGGER tuid_ProductAudit ON Production.Product FOR UPDATE AS
INSERT INTO Production.ProductAudit
(ProductID, ListPnceBefore, ListPnceAfter, AuditDate, ChangeUser)
SELECT INSERTED ProductID, DELETED. ListPnce, INSERTED. ListPnce, getdate(), suser_sname()
FROM INSERTED INNER JOIN DELETED ON INSERTED.ProductID - DELETED.ProductID;
4. Измените строку данных в таблице Production.Product.
5. Проследите действие триггера, сделав выборку данных из контрольной таблицы.
6. Можете ли вы объяснить, почему для каждой измененной строки в таблице Production. ProductAudit были созданы две строки данных?
Упражнение 2. Создание DDL-триггера
В этом упражнении вы создадите DDL-триггер, запрещающий удаление таблиц.
1. При необходимости запустите SSMS, подключитесь к своему экземпляру, откройте окно нового запроса и измените контекст на базу данных Adventиге Works.
2. Создайте DDL-триггер, исполнив следующий код:
CREATE TRIGGER tddl_tabledropprevent ON DATABASE FOR DROP_TABLE AS
PRINT 'Запрещено удалять таблицы!’
ROLLBACK ;
3. Создайте таблицу для тестирования следующим образом:
CREATE TABLE dbo.DropTest (ID int NOT NULL);
4. Попытайтесь удалить созданную таблицу, исполнив следующий код:
DROP TABLE dbo.DropTest;
5. Убедитесь, что таблица все еще существует, исполнив следующий код:
SELECT ID from dbo.DropTest
Резюме занятия
? SQL Server поддерживает два типа триггеров: DML- и DDL-триггеры.
? DM L-триггеры бывают двух типов: триггеры AFTER и триггеры INSTEAD OF. Для таблицы или представления можно создать любое число триггеров AFTER, но для
Резюме главы gpg
каждой операции изменения данных в таблице или представлении можно создать лишь один триггер INSTEAD OF. При запуске DML-триггеров они имеют доступ к специальным таблицам INSERTED и DELETED.
? DDL-триггеры запускаются при возникновении на сервере DDL-событий, таких как создание, изменение или удаление объекта. DDL-триггеры предназначены прежде всего для повышения уровня безопасности и аудита DDL-команд, выполняемых над базой данных.
Закрепление материала занятия
Приведенные далее вопросы помогут вам лучше усвоить основные темы данного занятия. Для тех, кто предпочитает работать с вопросами в электронном виде, они есть на сопроводительном компакт-диске.
ПРИМЕЧАНИЕ Ответы
Ответы на эти вопросы, а также пояснения, почему каждый вариант ответа является правильным/неправильным, вы найдете в приложении «Ответы» в конце книги.
1. Какие из этих операторов можно использовать в триггерах?
A. CREATE INDEX;
B. RESTORE DATABASE;
C. INSERT;
D. ALTER DATABASE.
Закрепление материала главы
Для закрепления навыков, полученных в этой главе, можно сделать следующее.
? Просмотреть резюме главы.
? Просмотреть список основных терминов, представленных в этой главе.
? Решить бизнес-задачу. Эта задача моделирует реальную ситуацию, и для ее решения требуется использовать темы, изложенные в этой главе.
Предыдущая << 1 .. 137 138 139 140 141 142 < 143 > 144 145 146 147 148 149 .. 343 >> Следующая