user1254579 user1254579 - 1 month ago 24
SQL Question

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.

Answer

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.