如何查询集成服务目录
Posted
技术标签:
【中文标题】如何查询集成服务目录【英文标题】:How to Query Integration Services Catalog 【发布时间】:2015-12-04 21:51:38 【问题描述】:问题:识别连接到 SQL Server 上特定数据库表的所有 SSIS 包。
详情:服务器上部署了近100个包,大多数包都很大,因此很难手动准确地通过它们。
有没有一种快速和自动化的方法来做到这一点?
使用 SQL Server 的潜在解决方案:
-
查询集成服务目录并检索 *.dtsx 包
将包数据加载到 XML 列/数据类型中
解析/查询包以获取对特定数据库表的任何引用
也许 C# 应用程序也可以这样做?
我非常感谢可以提供的任何帮助。
【问题讨论】:
我建议尝试潜在的解决方案并在您遇到问题时提出问题。现在你的问题对于 Stack Overflow 来说太宽泛了,它主要关注特定的代码相关问题。 【参考方案1】:感谢 SQL Girl 女士:http://www.mssqlgirl.com/editing-published-ssis-package-in-sql-server-2012.html
USE SSISDB
SELECT pr.name AS [ProjectName]
, pr.description AS [ProjectDescription]
, pr.last_deployed_time AS [ProjectLastValidated]
, pr.validation_status AS [ProjectValidationStatus]
, op.object_name AS [PackageName]
, op.design_default_value AS [DefaultConnectionString]
FROM [internal].[object_parameters] op
INNER JOIN [internal].[projects] pr
ON pr.project_id = op.project_id
AND pr.object_version_lsn = op.project_version_lsn
WHERE op.parameter_name LIKE '%.ConnectionString'
【讨论】:
【参考方案2】:我会打开包含所有这些包的 Visual Studio 项目(使用 VS),然后使用 VS 的“在文件中查找”功能来搜索表名。它非常快,并且使用“匹配整个单词”搜索应该会弹出您想要的内容。
如果您还没有包含这些包的 Visual Studio 项目/解决方案,您可能应该下载并构建一个,以便支持/维护它们。
【讨论】:
抱歉回复晚了。我最终找到了在这个论坛上引发问题的问题的解决方案。无论如何,在一个单独的博客上提出了一个查询(见上面的答案)。以上是关于如何查询集成服务目录的主要内容,如果未能解决你的问题,请参考以下文章