我正在尝试执行 SSIS 包,其持续时间小于 SSIS 包
USE SSISDB;
DECLARE @execution_id BIGINT
EXEC [SSISDB].[catalog].[create_execution]
@package_name=N'PackageName.dtsx',
@folder_name=N'Projects',
@project_name=N'ProjectName',
@use32bitruntime=False,
@reference_id=Null,
@execution_id=@execution_id OUTPUT
--SELECT @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value]
@execution_id,
@object_type=50,
@parameter_name=N'LOGGING_LEVEL',
@parameter_value=@var0
/* Attempt to use a variable to execute in the SQL as a parameter */
EXEC [SSISDB].[catalog].[set_execution_parameter_value]
@execution_id,
@object_type=20,
@parameter_name=N'RunDuration',
@parameter_value=10080 /*1 week*/
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO
我在 SSIS 包中有一个名为 User::Duration 的变量
我有一个 SQL 任务,我想在 SQL 命令中使用此输入:
DECLARE @DURATION SMALLINT; /* I think the variable would go here as an "= ?" but I am not sure of the rest
/* Need to research how to make @Duration a variable of the SSIS package. */
DECLARE @TIME DATETIME = DATEADD(mi,-@DURATION,GETDATE());
一旦我设置了“@TIME”,其余的脚本就会起作用。
我尝试让变量运行,但它似乎没有设置 @DURATION 并且 SSIS 包失败。
我希望获得计划任务>正确的SSIS执行脚本(希望我很接近)>包含输入数字的SSIS包变量>输入的数字能够在SQL任务、sql命令中使用。
然后你上面的sql运行包并设置参数应该可以工作。