如何查询Integration Services目录

时间:2015-12-04 21:51:38

标签: sql-server ssis

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

详细信息:服务器中部署了近100个软件包,大多数软件包都很大,因此很难以高精度手动完成这些软件包。

有快速自动的方法吗?

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

  1. 查询Integration Services目录并检索* .dtsx包
  2. 将包数据加载到XML列/数据类型
  3. 解析/查询包以获取对特定数据库表的任何引用
  4. 也许C#应用程序也可以这样做?

    我非常感谢能提供任何帮助。

2 个答案:

答案 0 :(得分:3)

归功于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'

答案 1 :(得分:0)

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

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