在Visual Studio中,我正在创建一个主包,我将使用执行包任务来执行许多子包。
子包已部署到SQL Server 2016上的Integration Services Catalog SSISDB。
配置执行包任务以执行子包时,我无法访问服务器上的SSISDB。我如何访问SSISDB?
似乎任务期望子包位于Integration Services服务器上的MSDB中。
以下是执行包任务
的配置更新: 更改到程序包部署模式不会更改“执行程序包任务”的行为。我仍然无法访问存储在SSISDB中的软件包
答案 0 :(得分:1)
看起来您使用软件包部署模式部署了软件包。将部署模式切换到包:项目 - 转换为项目部署模式:
并重新部署包。 要从另一个项目运行包,您必须将“执行SQL任务”与SSIS.create_execution存储过程(https://msdn.microsoft.com/en-us/library/ff878034(v=sql.110).aspx)放在控制流而不是“执行包任务”上,使用以下T-SQL作为示例(从提到的复制)链路):
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Child1.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'TestDeply4', @project_name=N'Integration Services Project1', @use32bitruntime=False, @reference_id=Null
Select @execution_id
DECLARE @var0 sql_variant = N'Child1.dtsx'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=20, @parameter_name=N'Parameter1', @parameter_value=@var0
DECLARE @var1 sql_variant = N'Child2.dtsx'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=20, @parameter_name=N'Parameter2', @parameter_value=@var1
DECLARE @var2 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var2
EXEC [SSISDB].[catalog].[start_execution] @execution_id