Sql Server 2008(可能还有大多数其他版本): Management Studio 有一个“生成脚本”选项,理论上可以使用所有对象编写整个数据库的脚本(右键单击,任务,生成脚本)。它适用于大多数情况,但是当您使用它为数据库中的所有视图/存储过程/函数编写脚本时,它会生成一个不考虑对象之间依赖关系的脚本。
例如如果视图 A 引用函数 B,它不一定会将函数 B 首先放入脚本中。
需要很长时间才能理清生成的长脚本,使其按顺序运行而不会出现错误。
一定会有更好的办法。解决这个问题的最佳方法是什么,最好是不花钱?*
*(红门ftw)
不幸的是,创建此类脚本的唯一快速简便的方法是使用一些第三方工具。我们正在使用顶点脚本 http://www.apexsql.com/sql_tools_script.aspx但还有其他工具,Red Gate 可能有自己的版本。
其他选项有:
- 多次运行脚本,直到所有内容都执行完毕
- 尝试使用 sys.dependancies 自己创建正确的顺序,但这可能并不总是有效
- 提出自己的依赖算法,这是一种矫枉过正的行为……
在早期版本的 SQL Server 中,系统依赖关系视图中存在错误。我记得在 SQL 2008 即将发布时读到过它。
我不记得所有细节,但这是关于当对象被删除并重新创建时依赖项无法正常工作的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)