程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2005中使用DDL觸發器監控數據庫變化

SQL Server 2005中使用DDL觸發器監控數據庫變化

編輯:關於SqlServer

添加,刪除或修改數據庫的對象,一旦誤操作,可能會導致大麻煩,需要一個 數據庫管理員或開發人員對相關可能受影響的實體進行代碼的重寫。

為了在數據庫結構發生變動而出現問題時,能夠跟蹤問題,定位問題的根源, 我們可以利用DDL觸發器來記錄類似“用戶建立表”這種變化的操作, 這樣可以大大減輕跟蹤和定位數據庫模式的變化的繁瑣程度。

1、DDL觸發器介紹

DDL 觸發器是一種特殊的觸發器,它在響應數據定義語言 (DDL) 語句時觸發 。它們可以用於在數據庫中執行管理任務,例如,審核以及規范數據庫操作。

使用 DDL 觸發器,可以達到以下幾種目的:

要防止對數據庫架構進行某些更改。

希望數據庫中發生某種情況以響應數據庫架構中的更改。

要記錄數據庫架構中的更改或事件。

與標准的DML觸發器一樣,DDL 觸發器在響應事件時執行存儲過程。 但與標准 的DML觸發器不同的是,它們並不在響應對表或視圖的 UPDATE、INSERT 或 DELETE 語句時執行存儲過程。 它們主要在響應數據定義語言 (DDL) 語句執行存 儲過程。 這些語句包括 CREATE、ALTER、DROP、GRANT、DENY、REVOKE 和 UPDATE STATISTICS 等語句。 執行 DDL 式操作的系統存儲過程也可以激發 DDL 觸發器。

2、如何使用DDL觸發器

第一步,需要建立一個表,用來記錄數據庫范圍內所有DDL操作。

下面的代碼在AdventureWorks范例數據庫中創建一個表,用於保存所有DDL操 作記錄:

USE AdventureWorks
GO
CREATE TABLE AuditLog
(ID INT PRIMARY KEY IDENTITY(1,1),
Command NVARCHAR(1000),
PostTime NVARCHAR(24),
HostName NVARCHAR(100),
LoginName NVARCHAR(100)
)
GO

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved