我已经在sis中创建了一个程序包,其中我在SQL语句内使用了一些日期变量(即,声明@DateIn =“ 2018-02-22”并声明@DateTo =“ 2018-03-22”),将相应的数据加载到数据仓库表中。
我需要做的是创建一个任务或其他程序包,这使我可以在每次运行它时从外部定义这些变量的值,以便用与我每次设置的日期相对应的数据。
根据我的阅读,我应该使用脚本任务或执行sql任务或参数
您能帮我吗?还是可以建议我一个好的教程/链接?我发现了很多东西,但无法决定它们是否满足我在上面描述的需求。谢谢
使用变量@DateStart
和@DateEnd
创建DTSX包
创建表,其中包含3列DateStart,DateEnd,活动
创建存储过程,从新创建的表中读取DateStart
,DateEnd
,其中Active = 1,并在SQL Server作业上进行更改,使用所需的值更新DTSX包内的变量值,方法是使用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中创建的表中的值,然后执行作业以运行存储过程以更新DTSX job exec命令并启动它。您可以从网站触发此操作,并从文本框中控制表格的值。
还需要特定的权限,更新SQL Agent作业的SP需要由Sysadmin运行
顺便问一下新学习者!这种情况有很多方法,下面我很少提到。1-在变量窗格@DateIn和@DateTo中创建变量以存储日期,数据类型将为date。现在在Excel,text或xml中为这两个变量输入2项,并使用foreachloop container进行调用并将其分配给变量。2-创建一个SQl表,您可以在其中每天手动存储这些值,或者使用excel,text,xml或csv文件加载该表,然后在Execute SQL Task中调用该表,然后选择结果集和将结果集值传递给变量。希望它能解决您的问题。