如何从另一个ssis包中执行包任务调用已部署的ssis 2012包

时间:2016-09-15 14:05:34

标签: ssis

我有一个已部署在服务器上的ssis 2012软件包。现在我正在创建另一个ssis包,它将通过执行包任务调用该已部署的包。有人能告诉我如何实现这一目标。 ?

我尝试做以下事情 -

  1. 试图找到已部署的路径,以便我可以在执行包任务中使用该路径。但我找不到部署包的路径。我的目标能否以这种方式实现。

  2. 尝试使用执行sql任务而不是执行包任务,但这不起作用。

1 个答案:

答案 0 :(得分:1)

为项目中的子包选择Project Reference。为包裹外的子包选择External Reference

enter image description here

如果包含该软件包的项目尚未转换为项目部署模型,则设置为External Reference

https://msdn.microsoft.com/en-us/library/hh479606.aspx

如果您尝试通过SSISDB Catalog部署Execute Package Task已部署的访问包,则必须下载该项目并将您的父包包含在该项目中。在一天结束时,您将需要将您的父包部署到同一个SSISDB目录(您无法通过Execute Package task访问不同项目的包)。

通过执行SQL任务执行包: 您可以通过Right cLick on package>Execute>Script to...

编写SSISDB部署包的TSQL代码
EXEC [SSISDB].[catalog].[create_execution] 
        @folder_name = N'Folder',
        @project_name = N'Test',
        @package_name = N'Package.dtsx',
        @reference_id = NULL,
        @use32bitruntime = FALSE,     
        @execution_id = @executionID OUTPUT

    EXEC [SSISDB].[catalog].[set_execution_parameter_value] 
    @executionID,
    @object_type = 20, 
    @parameter_name = N'Var1', 
    @parameter_value = @Var1

    EXEC [SSISDB].[catalog].[set_execution_parameter_value] 
    @executionID,
    @object_type = 20, 
    @parameter_name = N'Var2', 
    @parameter_value = @Var2

    EXEC [SSISDB].[catalog].[start_execution] @executionID