【问题标题】:querying ssisdb to find the name of packages查询 ssisdb 以查找包的名称
【发布时间】:2016-11-07 14:15:02
【问题描述】:

我正在查询 ssis catlog 以找出目录中所有包的名称。
Folder1 项目中只有 6 个包,但是查询给出了 9 条记录

 1. SELECT P.NAME FROM SSISDB.internal.projects PRJ INNER JOIN
    SSISDB.internal.packages P ON
    P.project_version_lsn=PRJ.object_version_lsn WHERE
    PRJ.NAME='Folder1'

它是否也显示从项目中删除的包。

【问题讨论】:

    标签: sql sql-server ssis ssis-2012 ssis-2016


    【解决方案1】:

    它们不会被删除,这是历史跟踪的一部分。您可能想要一个更类似于

    的查询
    SELECT
        F.name AS FolderName
    ,   P.name AS ProjectName
    ,   PKG.name AS PackageName
    FROM
        ssisdb.catalog.folders AS F
        INNER JOIN 
            SSISDB.catalog.projects AS P
            ON P.folder_id = F.folder_id
        INNER JOIN
            SSISDB.catalog.packages AS PKG
            ON PKG.project_id = P.project_id
    ORDER BY
        F.name
    ,   P.name
    ,   PKG.name;
    

    这反映文件夹包含项目,项目包含包,因此将为给定包提供确切的“地址”。

    【讨论】:

      【解决方案2】:

      [SSISDB].[internal].[packages] 表和其他 internal 表可以包含您的包的多个版本。

      您应该使用catalog 视图。

      SELECT [projects].[name], [packages].[name], *
      FROM [SSISDB].[catalog].[packages]
      INNER JOIN [SSISDB].[catalog].[projects]
          ON [packages].[project_id] = [projects].[project_id]
      ORDER BY [packages].[name]
      

      catalog 视图将只返回活动对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 2012-07-05
        • 1970-01-01
        • 2011-01-30
        相关资源
        最近更新 更多