有没有办法保存 ssis package/dtsx 文件中存在的所有查询?

Is there a way to save all queries present in a ssis package/dtsx file?

我需要 运行 对我的查询进行一些分析(特别是查找 ssis 调用的所有表)。 现在我正在打开每一个 ssis 包,其中的每一个步骤,并从中手动复制和粘贴表格。 正如您想象的那样,它非常耗时且令人麻木。

有没有办法自动导出所有查询?

顺便说一句,我正在使用 sql 服务器 2012

您可以为这个特定项目创建一个架构,然后将所有 SQL 存储在该架构的视图中...将有助于保持整洁并帮助解决此类问题。

检索查询不是一个简单的过程,您可以通过两种方式来实现它:

正在使用正则表达式分析 .dtsx 包 XML 内容

SSIS 包 (.dtsx) 是 XML 文件,您可以将这些文件作为文本文件读取并使用正则表达式检索表 (例如,您可以搜索所有以 SELECT, UPDATE, DELETE, DROP, ... 关键字开头的句子)

有一些问题要求从 .dtsx 文件中检索一些信息,您可以参考这些信息以获得一些想法:

使用 SQL 分析器

您可以在 SQL 服务器实例上创建并 运行 一个 SQL Profiler 跟踪,并过滤在执行 ssis 程序包时执行的所有 T-SQL 命令。可以在以下帖子中找到一些示例:

您还可以使用扩展事件(比分析器有更多选项)来监视服务器并收集 SQL 命令: