Vad*_* K. 3 t-sql sql-server ssis sql-server-2008
我无法通过SQL Management Studio连接到SSIS子系统,因此我一直在寻找一种通过t-sql列出所有SSIS包的方法.我找到了Sql Server 2005的以下查询,但它在2008年不起作用:
-- List all SSIS packages stored in msdb database.
SELECT PCK.name AS PackageName
,PCK.[description] AS [Description]
,FLD.foldername AS FolderName
,CASE PCK.packagetype
WHEN 0 THEN 'Default client'
WHEN 1 THEN 'I/O Wizard'
WHEN 2 THEN 'DTS Designer'
WHEN 3 THEN 'Replication'
WHEN 5 THEN 'SSIS Designer'
WHEN 6 THEN 'Maintenance Plan'
ELSE 'Unknown' END AS PackageTye
,LG.name AS OwnerName
,PCK.isencrypted AS IsEncrypted
,PCK.createdate AS CreateDate
,CONVERT(varchar(10), vermajor)
+ '.' + CONVERT(varchar(10), verminor)
+ '.' + CONVERT(varchar(10), verbuild) AS Version
,PCK.vercomments AS VersionComment
,DATALENGTH(PCK.packagedata) AS PackageSize
FROM msdb.dbo.sysdtspackages90 AS PCK
INNER JOIN msdb.dbo.sysdtspackagefolders90 AS FLD
ON PCK.folderid = FLD.folderid
INNER JOIN sys.syslogins AS LG
ON PCK.ownersid = LG.sid
ORDER BY PCK.name;
Run Code Online (Sandbox Code Playgroud)
经过一番研究后,我想出了2008年的一个问题,所以我想分享一下.请参阅以下答案.
此查询适用于Sql Server 2008.主要区别在于使用msdb.dbo.sysssispackages
和使用左联接,因为某些程序包可能没有所有者或关联文件夹.
SELECT PCK.name AS PackageName
,PCK.[description] AS [Description]
,FLD.foldername AS FolderName
,CASE PCK.packagetype
WHEN 0 THEN 'Default client'
WHEN 1 THEN 'I/O Wizard'
WHEN 2 THEN 'DTS Designer'
WHEN 3 THEN 'Replication'
WHEN 5 THEN 'SSIS Designer'
WHEN 6 THEN 'Maintenance Plan'
ELSE 'Unknown' END AS PackageTye
,LG.name AS OwnerName
,PCK.isencrypted AS IsEncrypted
,PCK.createdate AS CreateDate
,CONVERT(varchar(10), vermajor)
+ '.' + CONVERT(varchar(10), verminor)
+ '.' + CONVERT(varchar(10), verbuild) AS Version
,PCK.vercomments AS VersionComment
,DATALENGTH(PCK.packagedata) AS PackageSize
FROM msdb.dbo.sysssispackages AS PCK
LEFT JOIN msdb.dbo.sysssispackagefolders AS FLD
ON PCK.folderid = FLD.folderid
LEFT JOIN sys.syslogins AS LG
ON PCK.ownersid = LG.sid
ORDER BY PCK.name;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7387 次 |
最近记录: |