8

我希望能够绘制存储过程的调用图。我对每个细节都不感兴趣,也不关心动态 SQL(尽管检测它并跳过它或将其标记为这样会很酷。)

我希望该工具为我生成一个树,给定服务器名称、数据库名称、存储的 proc 名称、一个“调用树”,其中包括:

  • 父存储过程。
  • 作为调用者的子级调用的所有其他存储过程。
  • 每个被修改(更新或删除)的表都是作为存储过程的子级进行的。

希望很清楚我在追求什么;如果没有 - 请询问。如果没有可以做到这一点的工具,那么我想尝试自己编写一个。Python 2.6 是我选择的语言,我希望尽可能多地使用标准库。有什么建议么?

编辑:出于赏金目的警告:SQL 语法是复杂的。我需要可以解析各种 SQL 2008 的东西,即使它看起来很愚蠢。没有角落案例被禁止:)

EDIT2:如果我所缺少的只是图形,我会没事的。

4

3 回答 3

9

**我刚刚意识到您可能正在寻找可以为您执行此操作的 Python 库。如果是这样,我为这个愚蠢的答案道歉,但是如果你想可视化一个数据库以便你可以执行维护,那么我的答案是一样的 :) **

它不是免费的,但我向您保证 RedGate 的 SQL Dependency Tracker 物有所值。它会生成一个您所描述的图表,让您可以查看每个过程、键、视图、触发器等中的所有参与者。很棒的软件: http ://www.red-gate.com/products/sql-development/ sql-依赖跟踪器/

我知道你说免费,但几年前我和你在同一条船上,我一直在寻找可以完成这项工作的东西,无论是否免费。在我找到这个软件之前,没有其他东西可以满足我的需要。如果您需要定期执行此类操作,我强烈建议您为该工具找到资金。

于 2010-12-14T23:01:24.627 回答
0

SQL Negotiator Pro 在 www.aphilen.com 上有一个免费的 lite 版本。完整版是唯一可以找到所有依赖项并且在找到前 10 个子依赖项后不会停止的产品。其他产品在存在循环引用时会失败并且挂起,这些人已经掩盖了这一点。还有一个简洁的功能是能够向图表添加注释,以便轻松分发。完整版并不便宜,但为我们节省了大量通常需要弄清楚复杂数据库过程的时间。apex 还提供了一个简洁的工具

于 2013-08-30T01:08:21.090 回答
0

您可以使用 SQL Server Management Studio 显示实际或估计的查询计划。它提供了您可以遵循的图形输出。这是一个小入门:http ://www.mssqltips.com/tip.asp?tip=1873

更新:

您可以使用 SQL Server Integration Services (SSIS) 以图形方式创建数据提取。您还可以使用 Microsoft Biztalk Server 创建复杂的图形布局,同时提取数据。最后,您可以使用 Microsoft 的 WF 以图形方式创建可以执行与 Biztalk 类似的功能的自动化流程。唉,这些不是免费的 :(。如果你订阅了 MSDN,它们是 :)

Biztalk 地图: http://geekswithblogs.net/images/geekswithblogs_net/Chilberto/WindowsLiveWriter/BizTalkMapComparisonbetweenTableLoopinga_B5B9/image_6.png

于 2010-12-26T15:55:16.237 回答