sql-server - 如何跟踪数据库DDL语句的变化?

标签 sql-server

我在数据库中进行了更改,但我已经有旧数据库并在新数据库中进行了更改,所以我如何识别新的数据库更改。

有人知道使用 sql server 与此相关吗?

最佳答案

哈迪克问得好

即使我也面临同样的问题并得到了很好的解决方案。

您可以使用sqlserver中的Eventdata()函数。它提供特定数据库更改的所有信息,包括xml格式的sql命令。 了解更多信息 您可以查看此链接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)')
)

关于sql-server - 如何跟踪数据库DDL语句的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15567103/

相关文章:

sql-server - SQL Server View 何时更新?

sql - 如何修改此查询以仅获取字段值不为 0 的最后一条记录?

sql-server - 在SQL Server中“灌注”整个数据库以达到快速的速度

sql-server - 为什么我不能在SQL Server 2008的可为空的DATE列中插入NULL?

sql-server - Tableau - 公用表表达式 (CTE) SQL Server

sql-server - 什么时候 nvarchar(Max) = nvarchar(4000)?

c# - 如何检查Windows用户是否可以通过模拟访问(Windows集成安全性身份验证)SQL Server Analysis Services(SSAS)服务器

sql-server - SQL Azure - 如何从 SQL Azure 中的主数据库中选择 sysdatabases 表?

MySQL - 无法从 MSSQL 转换

SQL Server 行长度计算器