我当前的客户正在努力解决他们的发布过程。它有点复杂,有点不受控制。我正在尝试修复进程问题,但与此同时,如果我可以组合一个可以扫描脚本,查找依赖项并生成这些脚本需要运行的顺序的实用程序,将会很有帮助。
我没有重新发明轮子,而是认为我试图找到SQL Server用于填充sys.sql_dependencies(1)的代码(现在它在当前版本中实际上非常准确)。
此代码是作为隐藏系统存储过程/触发器在某处提供的,还是某些无法访问的二进制代码?
为了清楚起见,我正在寻找填充系统表的代码,而不是访问它们以确定依赖关系的代码。换句话说,当我执行“CREATE PROCEDURE ...”时运行的代码
如果有开源代码或已经具有此功能的第三方应用程序,那么我也会对此感兴趣。
(1)好的,从技术上讲,sys.sql_dependencies是一个sys.sysmultiobjrefs的视图,所以最终我正在寻找填充该表的代码。
答案 0 :(得分:1)
我认为这是非常难以接近的。
当sys.dependencies使我失败时,我尝试了Red-Gate's Dependency Tracker,并对此非常满意。不是开源的,但仍然是一个非常好的工具。
答案 1 :(得分:1)
可以扫描源代码文件以获取依赖关系的另一个第三方工具是Apex SQL Clean
这将向您显示在哪个脚本中引用现有数据库对象但对脚本本身的任何分析没有帮助(例如,如果CREATE语句在一个脚本中,则应该在引用它的另一个脚本之前先运行)