有没有办法登录所做的更改Schema
一的Table
,每当我做架构的变化?
我在这里读了一篇文章有关DDL触发器 。 但它并没有告诉有关表的架构所做的具体变化。
有没有办法登录所做的更改Schema
一的Table
,每当我做架构的变化?
我在这里读了一篇文章有关DDL触发器 。 但它并没有告诉有关表的架构所做的具体变化。
如经常在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/
对于这个问题,我可能会使用事件通知 。 虽然DDL触发器在我看来就告诉表提出了具体的修改,只是触发的定义:
Create Trigger tr_DDLNotikums
On DataBase
For **DDL_DATABASE_LEVEL_EVENTS**
使用DDL触发器在以下格式
CREATE TRIGGER tr_DDL_Database ON DATABASE
FOR DDL_SCHEMA_EVENTS
AS Begin
Insert Into LogTable (XmlColumn)
SELECT EVENTDATA()
End