我们在大多数项目中使用 SQL Server 2000/2005 和 Vault 或 SVN。我还没有找到一个不错的解决方案来捕获任一源代码控制系统中的数据库架构/过程更改。
我们当前的解决方案非常繁琐且难以实施(编写出您更改的对象并将其提交到数据库)。
我们有很多关于如何通过一些定制开发来解决这个问题的想法,但我宁愿安装一个现有的工具(付费工具很好)。
那么:您如何跟踪数据库代码更改?你有什么推荐的工具吗?
编辑:
感谢所有的建议。由于时间限制,我不想在这里自己动手。而且大多数建议都存在要求开发人员遵循某些程序的缺陷。
相反,理想的解决方案是监视 SQL 数据库的更改并将任何检测到的更改提交给 SCM。例如,如果 SQL Server 有一个附加组件可以记录任何 DML 更改以及进行更改的用户,然后将该对象的脚本提交给 SCM,我会很高兴。
我们在内部讨论了两个系统: 1. 在 SQL 2005 中,使用对象权限来限制您在执行“签出”之前更改对象。然后,签入程序会将其写入 SCM。2. 运行计划作业以检测任何更改并将它们(匿名)提交给 SCM。
如果我可以跳过用户操作部分并让系统自动处理所有这些,那就太好了。