ПиОБД Бочкарев / Методички (Rus) / Модуль 9 - Мониторинг SQL Server / m09ex03 - Использование DDL триггеров
.docУпражнение №3: Использование DDL триггеров.
Задача №1: Создайте AuditOperations DDL триггер в БД AdventureWorks2208.
-
Нажмите Пуск → Все программы → Microsoft SQL Server 2008 → SQL Server Management Studio
-
В окне Connect to Server, нажмите Connect
-
На панели инструментов, нажмите New Query
-
В меню File, нажмите Save SQLQuery1.sql As
-
В окне Save File As, укажите E:\Mod09\Labfiles\Starter, в поле File name введите DDLTrigger.sql и нажмите Save
-
На панели запросов, введите 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
-
В меню Query, нажмите Execute
-
В меню File, нажмите Save DDL Trigger.sql
-
В Object Explorer, раскройте Databases → AdventureWorks2008 →Programmability → Database Triggers. Убедитесь, что AuditOperations триггер был создан.
Задача №2: Тестирование AuditOperations DDL триггера.
-
На панели инструментов, нажмите New Query
-
На панели запросов, введите 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)
-
В Object Explorer раскройте → Management → SQL Server Logs и нажмите двойным нажатием на журнал Current
-
В окне Log File Viewer, проверьте, что первые три пункта в журнале были сгенерированы AuditOperations триггером
-
Закройте окно Log File Viewer