0
我的要求是創建一個數據庫觸發器來跟蹤此數據庫下每個表上發生的所有更改。創建數據庫觸發器,以在SQL Server 2012數據庫中的所有表上審計插入
我注意到,創建數據庫觸發器有選項來跟蹤數據庫級別的變化,但不是在每個表級別上。
請給我建議。
我的要求是創建一個數據庫觸發器來跟蹤此數據庫下每個表上發生的所有更改。創建數據庫觸發器,以在SQL Server 2012數據庫中的所有表上審計插入
我注意到,創建數據庫觸發器有選項來跟蹤數據庫級別的變化,但不是在每個表級別上。
請給我建議。
所以我猜你正在尋找在該數據庫中創建審覈表爲每個DML(更新,插入,刪除)事件是什麼,這樣你就可以這樣做在這個例子中爲每個表:
what is the correct syntax for creating a database trigger for insert, modify and delete
或者您可以使用此SP爲給定表創建審覈表並插入\ Update \ Delete觸發器。只是檢索數據庫中的所有表有這樣一個簡單的腳本,把它們放在一個臨時表和循環通過該表創建審計表和觸發器:
https://gallery.technet.microsoft.com/scriptcenter/Create-Audit-Table-and-5cd69d5d
DECLARE @Table_Name VARCHAR(100)
DECLARE @Schema_Name VARCHAR(100)
SELECT SCHEMA_NAME(schema_id) as SchemaName,name as TableName
INTO #Temp
FROM sys.tables
While (Select Count(*) From #Temp) > 0
Begin
Select Top 1 @Table_Name = TableName From #Temp
Select Top 1 @Schema_Name = SchemaName From #Temp
EXEC GenerateTriggers @Schemaname = @Schema_Name,@Tablename = @Table_Name, @GenerateScriptOnly = 1
Delete #Temp Where TableName= @Table_Name and SchemaName = @Schema_Name
End
您是否嘗試過這些? https://gallery.technet.microsoft.com/scriptcenter/Create-Audit-Table-and-5cd69d5d https://www.mssqltips.com/sqlservertip/2085/sql-server-ddl-triggers-to-跟蹤所有數據庫更改/ – Avias