2013-03-22 45 views
2

我在數據庫中進行了更改,但是我已經有了舊的數據庫,並且在新數據庫中進行了更改,因此我如何識別新的數據庫更改。如何跟蹤DDL語句的數據庫更改?

是任何人有任何想法相關這使用SQL Server?

+0

這是兩個不同的物理** **數據庫? – 2013-03-22 09:46:30

+0

在VS 2010+中嘗試[SQL Schema Compare](http://www.codeproject.com/Articles/145979/SQL-Server-Schema-Comparison-Tool-in-Visual-Studio) – 2013-03-22 09:47:26

回答

2

尼斯問題hardik

即使是我也面臨着同樣的問題,得到了很好的解決。

所有您可以使用的是sqlserver.it中的Eventdata()函數提供特定數據庫更改的所有信息,包括xml格式的sqlcommands。 欲瞭解更多信息 可以通過這個鏈接http://msdn.microsoft.com/en-IN/library/ms173781.aspx

在這裏你可以做這樣的

DECLARE @data XML 
SET @data = EVENTDATA() 
INSERT INTO dbo.AdministratorLog(databasename, eventtype,objectname, objecttype, sqlcommand, loginname) 
VALUES(@data.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'varchar(256)'), 
@data.value('(/EVENT_INSTANCE/EventType)[1]', 'varchar(50)'), 
@data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'varchar(256)'), 
@data.value('(/EVENT_INSTANCE/ObjectType)[1]', 'varchar(25)'), 
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'varchar(max)'), 
@data.value('(/EVENT_INSTANCE/LoginName)[1]', 'varchar(256)') 
)