最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

sql server - Get package depends object in SSIS package - Stack Overflow

programmeradmin2浏览0评论

I need to get list of objects depends in each SSIS package using SQL script, or any other approach autoprocess.

Example ssis solution have 2 packages.

package1.dtsx
package2.dtsx

Package1.dtsx has 5 tasks, and 2 are "Execute SQL" tasks and 3 are data flow tasks. Here 1 executesql is used usp_emp procedured

And the 2nd ExecuteSql task uses usp_dept procedure and others 3 dataflow tasks source: is emp and destination tables also emp.

Now I want get output like

package name |packagefoldepath                     | connectionstring                                                                   | sqlobjects |variables |tasknames
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;"| usp_emp   |           |executesqltask1
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;" |usp_dept   |           |executesqltask2
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;" |emp   |                |dft1_oledsoure
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;" |emp   |                |dft1_oleeddestinaton
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;" |emp   |                |dft2_oledsoure
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;" |emp   |                |dft2_oleeddestinaton
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;" |emp   |                |dft3_oledsoure
packag1.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;" |emp   |                |dft3_oleeddestinaton

packag2.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=False;"|       | usp_var and sp |executesqltask2
packag2.dtsx |FolderName/ProjectName/Package1.dtsx |"Data Source=.;Initial Catalog=test;Provider=SQLNLocalHost.test;Auto Translate=Fal|se   |      |loca_var and prcodurename|executesql |df|_oleeddestinaton

I have tried with the SQL code:

WITH PackageXML AS 
(
    SELECT 
        f.folder_name + '/' + p.project_name + '/' + pk.package_name AS package_folder_path,
        CAST(pk.package_data AS XML) AS package_xml
    FROM 
        SSISDB.catalog.folders f
    JOIN 
        SSISDB.catalog.projects p ON f.folder_id = p.folder_id
    JOIN 
        SSISDB.catalog.packages pk ON p.project_id = pk.project_id
)
SELECT 
    px.package_folder_path AS package_name,
    c.value('(DTS:ObjectData/DTS:ConnectionManager/DTS:Property[@DTS:Name="ConnectionString"])[1]', 'NVARCHAR(MAX)') AS connection_string,
    e.value('(DTS:Property[@DTS:Name="SqlStatementSource"])[1]', 'NVARCHAR(MAX)') AS sql_objects,
    v.value('(DTS:Variable/DTS:Property[@DTS:Name="Value"])[1]', 'NVARCHAR(MAX)') AS variables,
    t.value('@DTS:Name', 'NVARCHAR(255)') AS task_name
FROM 
    PackageXML px
CROSS APPLY package_xml.nodes('//DTS:Executable') AS Tasks(t)
OUTER APPLY package_xml.nodes('//DTS:ConnectionManagers/DTS:ConnectionManager') AS Connections(c)
OUTER APPLY package_xml.nodes('//DTS:Executable/DTS:ObjectData/DTS:ExecuteSQLTask') AS SQLTasks(e)
OUTER APPLY package_xml.nodes('//DTS:Variables/DTS:Variable') AS Vars(v)
WHERE 
    t.value('@DTS:ExecutableType', 'NVARCHAR(255)') IN ('SSIS.ExecuteSQLTask', 'SSIS.DataFlow');

but this query not given expect result and package_data always getting null values. Could someone please tell me how to write query to achieve this task in SQL Server.

发布评论

评论列表(0)

  1. 暂无评论