2013-03-22 3 views
2

Я вношу изменения в базу данных, но у меня уже есть старая база данных и вносятся изменения в новую базу данных, так что я могу определить новые изменения базы данных.Как отслеживать изменения базы данных заявления DDL?

есть ли какие-либо идеи, связанные с этим с использованием SQL-сервера?

+0

Это две разных ** ** физические баз данных? –

+0

Попробуйте [Сравнение схем SQL] (http://www.codeproject.com/Articles/145979/SQL-Server-Schema-Comparison-Tool-in-Visual-Studio) в VS 2010+ –

ответ

2

Хороший вопрос Hardik

даже меня тоже сталкивается же проблема, и получили хорошее решение.

Все, что вы можете использовать, это функция Eventdata() в sqlserver.it предоставляет всю информацию о конкретных изменениях базы данных, включая sqlcommands в формате xml. Для получения дополнительной информации вы можете проверить эту ссылку 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)') 
) 
Смежные вопросы