如何在 SSIS 中创建一个任务,用户可以在每次运行包时更改变量的值?

How to create a task in SSIS, in which the user can change the values of variables, every time he runs the package?

我在 ssis 中创建了一个包,其中我在 SQL 语句中使用了一些日期变量(即声明 @DateIn ="2018-02-22" 并声明 @DateTo = "2018-03 -22"), 以便在数据仓库的表中加载相应的数据。

我需要做的是创建一个任务或不同的包,这将使我有可能在外部定义这些变量的值,每次我 运行 它,以便填写仓库的表格,其中包含与我每次设置的日期相对应的数据。

根据我的阅读,我可能应该使用脚本任务或执行 sql 任务或参数

你能帮帮我吗?或者你能给我推荐一个好的 tutorial/link 吗? 我发现了很多但无法确定它们是否满足我上面描述的需求。 谢谢

  1. 使用变量 @DateStart@DateEnd 创建 DTSX 包

  2. 创建 table 包含 3 列 DateStart、DateEnd、Active

  3. 创建读取 DateStartDateEnd 的存储过程,其中 Active = 1 来自您新创建的 table 并在 SQL 上进行更改服务器作业使用 sp_update_jobstep

    将 DTSX 包内的变量值更新为您想要的值

    See link

    命令示例:

     dtexec /f YourPackage.dtsx
             /set \package.variables[DateStart].Value;myvalue
             /set \package.variables[DateStart].Value;myvalue
    

    在存储过程中添加 sp_start_job 以使用新变量值启动作业。

  4. 通过 1 个步骤创建作业,其中包含第 3 步中存储过程的执行

  5. 您需要做的就是更新您在第 2 步中创建的 table 的值,然后执行作业到 运行 存储过程以更新 DTSX 作业执行命令和启动它。您可以从网站触发它并从文本框控制 tables 值。

还需要特定权限,更新 SQL 代理作业的 SP 需要由系统管理员 运行

顺便提一下新手的好问题! 这种情况有很多方法,我在下面提到的很少。 1-在变量窗格@DateIn 和@DateTo 中创建变量用于存储日期,数据类型将是日期。 现在为这两个变量在 Excel 、文本或 xml 中放置 2 个条目,并使用 foreachloop 容器 调用它并将其分配给变量。 2-创建一个 SQl table ,您可以在其中每天手动存储这些值,或者使用 excel ,文本,xml 加载 table 或csv 文件并调用 中的 table 执行 SQL 任务 和 select 结果集并将结果集值传递给变量。 希望能解决你的问题。