如何查询集成服务目录

问题描述 投票:0回答:2

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

详细信息:服务器上部署了近 100 个包,大多数包都很大,因此很难高精度地手动检查它们。

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

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

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

也许 C# 应用程序也可以做同样的事情?

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

sql-server ssis
2个回答
4
投票

感谢 SQL Girl 女士:https://www.mssqlgirl.com/editing-published-ssis-package-in-sql-server-2012/#comment-8510

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'

更新:更新了正确的网页链接。感谢罗布·S。


0
投票

我会打开包含所有这些包的Visual Studio项目(使用VS),然后使用VS的“在文件中查找”功能来搜索表名。 它非常快,并且使用“匹配整个单词”搜索应该会弹出您想要的内容。

如果您还没有包含这些包的 Visual Studio 项目/解决方案,您可能应该下载它们并构建一个,以便可以支持/维护它们。

© www.soinside.com 2019 - 2024. All rights reserved.