繁体   English   中英

SQL Server DDL更改(列名,类型)

[英]SQL Server DDL changes (column names, types)

我需要审核对数据库所做的DDL更改。 这些更改需要在以后的其他许多数据库中复制。 我在这里发现,可以启用DDL触发器来跟踪DDL活动,这对于create tabledrop table操作非常有用,因为该触发器获取已执行的T-SQL,并且我可以很高兴地将其存储在某个地方并简单地执行稍后在其他服务器上。

我遇到的问题是alter操作:从Management Studio更改列名称时,产生的事件不包含有关列的任何信息! 它只是说表已锁定...而且,如果一次更改许多列(例如,列foo => oof ,还有列bar => rab ),则仅触发一次事件!

我可怜的人的解决方案是在更改操作之前和之后都有一个表来存储将要更改的表的结构。 这样,我可以比较这两种结构并弄清楚哪列发生了什么。

但是在我这样做之前,我想知道是否可以使用我忽略的SQL Server其他功能来实现它,或者也许有更好的方法。 您将如何处理?

有一种产品可以做到这一点(我写过)。
它监视包含ddl更改的脚本,编写脚本的人员以及更改的时间以及对性能的影响,它使您能够轻松地将它们复制为一个部署脚本。 对于您的要求,免费版本就足够了。
http://www.seracode.com/

SQL Server中没有满足您需要的特殊功能。 您可以使用触发器,但是它们需要大量的T-SQL编码才能正常运行。 快速解决方案将是一些第三方工具,但它们并非免费的。 请查看有关第三方工具的此答案https://stackoverflow.com/a/18850705/2808398

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM