如何在 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 吗?
我发现了很多但无法确定它们是否满足我上面描述的需求。
谢谢
使用变量 @DateStart
和 @DateEnd
创建 DTSX 包
创建 table 包含 3 列 DateStart、DateEnd、Active
创建读取 DateStart
、DateEnd
的存储过程,其中 Active = 1 来自您新创建的 table 并在 SQL 上进行更改服务器作业使用 sp_update_jobstep
将 DTSX 包内的变量值更新为您想要的值
命令示例:
dtexec /f YourPackage.dtsx
/set \package.variables[DateStart].Value;myvalue
/set \package.variables[DateStart].Value;myvalue
在存储过程中添加 sp_start_job
以使用新变量值启动作业。
通过 1 个步骤创建作业,其中包含第 3 步中存储过程的执行
您需要做的就是更新您在第 2 步中创建的 table 的值,然后执行作业到 运行 存储过程以更新 DTSX 作业执行命令和启动它。您可以从网站触发它并从文本框控制 tables 值。
还需要特定权限,更新 SQL 代理作业的 SP 需要由系统管理员 运行
顺便提一下新手的好问题!
这种情况有很多方法,我在下面提到的很少。
1-在变量窗格@DateIn 和@DateTo 中创建变量用于存储日期,数据类型将是日期。
现在为这两个变量在 Excel 、文本或 xml 中放置 2 个条目,并使用 foreachloop 容器 调用它并将其分配给变量。
2-创建一个 SQl table ,您可以在其中每天手动存储这些值,或者使用 excel ,文本,xml 加载 table 或csv 文件并调用 中的 table 执行 SQL 任务 和 select 结果集并将结果集值传递给变量。
希望能解决你的问题。
我在 ssis 中创建了一个包,其中我在 SQL 语句中使用了一些日期变量(即声明 @DateIn ="2018-02-22" 并声明 @DateTo = "2018-03 -22"), 以便在数据仓库的表中加载相应的数据。
我需要做的是创建一个任务或不同的包,这将使我有可能在外部定义这些变量的值,每次我 运行 它,以便填写仓库的表格,其中包含与我每次设置的日期相对应的数据。
根据我的阅读,我可能应该使用脚本任务或执行 sql 任务或参数
你能帮帮我吗?或者你能给我推荐一个好的 tutorial/link 吗? 我发现了很多但无法确定它们是否满足我上面描述的需求。 谢谢
使用变量
@DateStart
和@DateEnd
创建 DTSX 包创建 table 包含 3 列 DateStart、DateEnd、Active
创建读取
将 DTSX 包内的变量值更新为您想要的值DateStart
、DateEnd
的存储过程,其中 Active = 1 来自您新创建的 table 并在 SQL 上进行更改服务器作业使用 sp_update_jobstep命令示例:
dtexec /f YourPackage.dtsx /set \package.variables[DateStart].Value;myvalue /set \package.variables[DateStart].Value;myvalue
在存储过程中添加
sp_start_job
以使用新变量值启动作业。通过 1 个步骤创建作业,其中包含第 3 步中存储过程的执行
您需要做的就是更新您在第 2 步中创建的 table 的值,然后执行作业到 运行 存储过程以更新 DTSX 作业执行命令和启动它。您可以从网站触发它并从文本框控制 tables 值。
还需要特定权限,更新 SQL 代理作业的 SP 需要由系统管理员 运行
顺便提一下新手的好问题! 这种情况有很多方法,我在下面提到的很少。 1-在变量窗格@DateIn 和@DateTo 中创建变量用于存储日期,数据类型将是日期。 现在为这两个变量在 Excel 、文本或 xml 中放置 2 个条目,并使用 foreachloop 容器 调用它并将其分配给变量。 2-创建一个 SQl table ,您可以在其中每天手动存储这些值,或者使用 excel ,文本,xml 加载 table 或csv 文件并调用 中的 table 执行 SQL 任务 和 select 结果集并将结果集值传递给变量。 希望能解决你的问题。