Search code examples
sqlsql-serverssisssis-2012ssis-2016

querying ssisdb to find the name of packages


i was querying the ssis catlog to find out the name of all the packages in the catalog.
There are only 6 packages in the Folder1 project,but the query gives 9 records

 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'

Does it show the deleted packages from the project as well.


Solution

  • They aren't deleted, that's part of the historical tracking. You likely wanted a query more similar to

    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;
    

    This reflects that Folders contain Projects and Projects contain Packages so that will provide the exact "address" for a given package.