问题
从SSMS,我可以为视图,过程和函数使用“生成脚本”,然后将每个保存为“每个对象的单个文件”。
如果他们依赖于其他视图,我怎样才能生成正确的命令来执行这些文件?
背景故事
我正在尝试将我的数据库架构置于版本控制之下。
对于视图(以及过程和函数),下面的页面建议为每个文件保存一个。在更新时,将删除所有内容,然后重新创建所有内容。
不幸的是,该页面从未提及它如何处理视图之间的依赖关系的细节。
Versioning Databases – Views, Stored Procedures, and the Like
每个对象一个文件
我的策略是编写每个视图,存储过程和函数的脚本 到一个单独的文件,然后将文件提交到源代码控制。如果 有人需要添加新视图,他们将视图编写到文件中 将文件提交给源代码控制。如果有人需要修改视图, 他们修改视图的脚本文件并再次提交。如果你需要 从数据库中删除视图,从源代码管理中删除该文件。 这是一个相对简单的工作流程。
当开发人员,测试人员或安装程序更新时,会发生魔力 源代码控制并运行一个更新其本地数据库的工具。该 工具使用三个步骤:
- 该工具通过将可用的架构更改文件与数据库中的SchemaChangeLog记录进行比较来应用新的架构更改。
- 该工具将 DROP 数据库中的所有存储过程,视图和函数。
- 该工具将运行将视图,存储过程和函数添加回数据库所需的所有脚本。
醇>