Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПиОБД Бочкарев / Методички (Rus) / Модуль 9 - Мониторинг SQL Server / m09ex03 - Использование DDL триггеров

.doc
Скачиваний:
33
Добавлен:
06.02.2016
Размер:
35.84 Кб
Скачать

Упражнение №3: Использование DDL триггеров.

Задача №1: Создайте AuditOperations DDL триггер в БД AdventureWorks2208.

  1. Нажмите Пуск → Все программы → Microsoft SQL Server 2008 → SQL Server Management Studio

  2. В окне Connect to Server, нажмите Connect

  3. На панели инструментов, нажмите New Query

  4. В меню File, нажмите Save SQLQuery1.sql As

  5. В окне Save File As, укажите E:\Mod09\Labfiles\Starter, в поле File name введите DDLTrigger.sql и нажмите Save

  6. На панели запросов, введите T –SQL код:

    USE AdventureWorks2008

    GO

    CREATE TRIGGER AuditOperations

    ON DATABASE

    FOR DDL_DATABASE_LEVEL_EVENTS

    AS

    DECLARE @data xml

    DECLARE «cmd nvarchar (350)

    DECLARE @logMsg nvarchar (400)

    SET @data = eventdata()

    SET @cmd = @data.value (‘(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]’,’nvarchar(350)’)

    SET @logMsg = @cmd + ‘ (‘ + SYSTEM_USER + ‘ on ‘ + HOST_NAME() + ‘)’

    RAISERROR (@logMsg, 10, 1) WITH LOG

    GO

  7. В меню Query, нажмите Execute

  8. В меню File, нажмите Save DDL Trigger.sql

  9. В Object Explorer, раскройте Databases → AdventureWorks2008 →Programmability → Database Triggers. Убедитесь, что AuditOperations триггер был создан.

Задача №2: Тестирование AuditOperations DDL триггера.

  1. На панели инструментов, нажмите New Query

  2. На панели запросов, введите T –SQL код:

    USE AdventureWorks2008

    GO

    UPDATE STATISTICS Producttion.Product

    GO

    CREATE TABLE dbo.Test(co lint)

    GO

    DROP TABLE dbo.Test

    GO

    В меню Query, нажмите Execute

    На панели Message, убедитесь что следующее сообщение отображается.

    UPDATE STATISTICS Production.Product (NY-SQL-01\Student on NY-SQL-01)

    CREATE TABLE dbo.Test(co lint) (NY-SQL-01\Student on NY-SQL-01)

    DROP TABLE dbo.Test (NY-SQL-01\Student on NY-SQL-01)

  3. В Object Explorer раскройте → Management → SQL Server Logs и нажмите двойным нажатием на журнал Current

  4. В окне Log File Viewer, проверьте, что первые три пункта в журнале были сгенерированы AuditOperations триггером

  5. Закройте окно Log File Viewer