Min*_*ouz 4 sql-server ssis package
我有多个SSIS项目,但其中的一些包是相同的.
我想创建一个包含所有通用包的项目,并将其他项目与他们的特定包保持一致.
所以我的问题是:是否有可能拥有一个可以执行并将父变量传递给另一个项目的包的主包?
我是SSIS的新手很抱歉,如果这是一个明显的问题,或者我不够具体
配置Integration Services目录时,可以从其他项目执行包.
script菜单并选择New query editor window@execution_id(不是必需的)DECLARE @var0 smallint = 1行并替换@var0为1(在行中它将是@ parameter_value = 1)现在在你的主包中:
Execute SQL Task OLE DB connection manager 添加到SSISDB数据库Execute SQL Task Editor- > SQLstatement:粘贴这里生成的包脚本脚本的一个例子:
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'testpackage.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'TestFolder', @project_name=N'TestProject', @use32bitruntime=False, @reference_id=Null
Select @execution_id --delete this line
DECLARE @var0 smallint = 1 `-- delete this line`
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var0 `--(replace this @var0 with 1)`
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO
Run Code Online (Sandbox Code Playgroud)
传递参数:添加以下两行以添加传递参数
DECLARE @ReportDate nvarchar(100) = `?`
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=30, @parameter_name=N'ReportDate', @parameter_value=@ReportDate
Run Code Online (Sandbox Code Playgroud)
现在从"参数映射"选项卡上Execute SQL Task Editor添加要作为参数传递的变量.
请记住,可变数据类型必须与参数数据类型相同.