Cam*_*Cam 5 sql-server ssis etl for-loop date
我想在我的 SSIS 包中定义start_date和参数,并有一个为这 2 个日期(含)之间的每个日期运行的容器,该容器执行一个 SQL 查询,获取当前日期值(即从 开始)并将其用作查询的参数。end_dateforeachstart_date
我对 SSIS 编程很陌生,我找不到有关如何执行此操作的信息。
AFor Loop将是执行此操作的更好选择。假设开始日期和结束日期作为问题中所示的包的参数提供,请注意,参数无法在 SSIS 包中更新,但变量可以。下面将进一步详细介绍这一点以及您问题中概述的过程示例。
@[User::vStartDate]设置为与For 循环@[$Package::pStartDate]中的包参数相同的值。InitExpression当开始日期变量小于/等于字段中指定的结束日期参数时,循环迭代将继续EvalExpression。ReadWriteVariables脚本任务的字段中添加 SSIS 开始日期变量。这将进入Main脚本的方法,如下所示。虽然 \xe2\x80\x99s 只是在脚本任务中完成日期和变量更新的增量,但从长远来看,如果需要像 C# 那样添加更多逻辑,则可以更轻松地实现长期可持续性提供更多的功能。脚本任务:
\n\npublic void Main()\n{\n//get value in current iteration of loop\nDateTime currentIterationValue = Convert.ToDateTime(Dts.Variables["User::vStartDate"].Value);\n\n//increment by one day\ncurrentIterationValue = currentIterationValue.AddDays(1);\n\n//update SSIS variable\nDts.Variables["User::vStartDate"].Value = currentIterationValue;\n\nDts.TaskResult = (int)ScriptResults.Success;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n