我在数据库中进行了更改,但我已经有旧数据库并在新数据库中进行了更改,以便我如何识别新的数据库更改。
有没有人知道使用 sql server 与此相关的任何想法?
好问题哈迪克
甚至我也面临同样的问题并得到了很好的解决方案。
您可以使用的只是 sqlserver 中的 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)')
)