哦,忘了说,在将架构更改加载到生产之前,请确保您有一组良好的数据库备份。比抱歉更安全。
我们在使用Oracle DB时有过类似的经历。我们建立了采用SVN和自动脚本(从SVN中提取更改)以构建补丁的程序。 请参阅 http://www.scmsupport.com/scm.php?go=home.html 和 http://scmsupport.wordpress.com/ 更多细节。
有一些工具可以帮助您开发模式,开发更改,对这些更改进行版本化,并帮助您比较版本之间的差异,甚至生成SQL以进行DDL更改。
例如,退房 编辑
您可以自动创建初始创建脚本,但ALTER脚本确实需要根据具体情况进行手工编码,因为在实践中您需要在其中执行自定义内容。
在任何情况下,您都需要一些为每个更改创建应用和回滚脚本的方法,并且有一个运行它们的安装程序脚本(当然还有回滚它们)。这样的安装程序应该记住架构所处的版本,并按正确的顺序运行所有必要的迁移。
在这里看我的文章:
http://marksverbiage.blogspot.com/2008/07/versioning-your-schema.html
它会有所不同,具体取决于您希望如何处理现有数据以及架构更改的范围,但即使在Management Studio中,在提交更改之前,您也可以生成所有更改的脚本。
对于大量数据或存在约束或外键的情况,即使简单的ALTER操作也可能花费大量时间。