日志表的模式更改(Log table Schema changes)

2019-07-29 09:59发布

有没有办法登录所做的更改Schema一的Table ,每当我做架构的变化?

我在这里读了一篇文章有关DDL触发器 。 但它并没有告诉有关表的架构所做的具体变化。

Answer 1:

如经常在SSMS表在后台却下降和重建,这将是非常困难的(取决于架构变化的复杂性,你和是否启用了“禁止保存需要表重新创建的变化”在SSMS选项) - 记录所有不同类型的变化将是一场噩梦。 (约束被丢弃,只能重新创建 - 批量重新插入,重命名等等时,你可能会做的加入表重新排列列)

如果你是认真的跟踪模式改变我强烈建议你脚本模式(使用产生MSSMS脚本选项)检查所生成的文件到SVN / SourceSafe中/ TFS和使用适用于这些系统的许多比较工具。

或者,您可以使用做这一切为你的第三方产品,如红盖茨的SQL源控制:

http://www.red-gate.com/products/sql-development/sql-source-control/

编辑:您可能会发现这个有用-它利用了服务代理(SQL 2005+)和SSB队列:

http://www.mssqltips.com/sqlservertip/2121/event-notifications-in-sql-server-for-tracking-changes/



Answer 2:

对于这个问题,我可能会使用事件通知 。 虽然DDL触发器在我看来就告诉表提出了具体的修改,只是触发的定义:

Create Trigger tr_DDLNotikums
    On DataBase
For **DDL_DATABASE_LEVEL_EVENTS** 


Answer 3:

使用DDL触发器在以下格式

 CREATE TRIGGER tr_DDL_Database ON DATABASE 
 FOR DDL_SCHEMA_EVENTS
 AS Begin
   Insert Into LogTable (XmlColumn)
   SELECT EVENTDATA()
 End


文章来源: Log table Schema changes