2013-03-22 3 views
2

나는 데이터베이스를 변경하지만 이미 새 데이터베이스를 변경하여 새 데이터베이스 변경 사항을 식별 할 수 있도록 새 데이터베이스를 변경합니다.DDL 성명서의 데이터베이스 변경을 추적하는 방법은 무엇입니까?

아무 생각없는 사람이 SQL Server를 사용하여 관련이 있습니까?

+0

처럼 그것을 할 수 있습니다를 확인할 수 있습니까? –

+0

VS 2010+의 [SQL 스키마 비교] (http://www.codeproject.com/Articles/145979/SQL-Server-Schema-Comparison-Tool-in-Visual-Studio)를 사용해보십시오. –

답변

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)') 
) 
관련 문제