查询 ssisdb 以查找包的名称
querying ssisdb to find the name of packages
我正在查询 ssis 目录以找出目录中所有包的名称。
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'
它是否也显示从项目中删除的包。
[SSISDB].[internal].[packages]
table 和其他 internal
table 可以包含您的包的多个版本。
您应该使用 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
视图将 return 只有活动对象。
它们没有被删除,这是历史跟踪的一部分。您可能想要一个更类似于
的查询
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;
这反映出文件夹包含项目,项目包含包,因此将为给定包提供准确的 "address"。
我正在查询 ssis 目录以找出目录中所有包的名称。
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'
它是否也显示从项目中删除的包。
[SSISDB].[internal].[packages]
table 和其他 internal
table 可以包含您的包的多个版本。
您应该使用 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
视图将 return 只有活动对象。
它们没有被删除,这是历史跟踪的一部分。您可能想要一个更类似于
的查询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;
这反映出文件夹包含项目,项目包含包,因此将为给定包提供准确的 "address"。