【问题标题】:How to Query Integration Services Catalog如何查询集成服务目录
【发布时间】:2015-12-04 21:51:38
【问题描述】:

问题:识别连接到 SQL Server 上特定数据库表的所有 SSIS 包。

详情:服务器上部署了近100个包,大多数包都很大,因此很难手动准确地通过它们。

有没有一种快速和自动化的方法来做到这一点?

使用 SQL Server 的潜在解决方案:

  1. 查询集成服务目录并检索 *.dtsx 包
  2. 将包数据加载到 XML 列/数据类型中
  3. 解析/查询包以获取对特定数据库表的任何引用

也许 C# 应用程序也可以这样做?

我非常感谢可以提供的任何帮助。

【问题讨论】:

  • 我建议尝试潜在的解决方案并在您遇到问题时提出问题。现在你的问题对于 Stack Overflow 来说太宽泛了,它主要关注特定的代码相关问题。

标签: sql-server ssis


【解决方案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 项目/解决方案,您可能应该下载并构建一个,以便支持/维护它们。

    【讨论】:

    • 抱歉回复晚了。我最终找到了在这个论坛上引发问题的问题的解决方案。无论如何,在一个单独的博客上提出了一个查询(见上面的答案)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多