Sql server For循环容器SSIS赋值表达式
我有一个表,列有开始日期和结束日期,我需要输入 我创建了一个for循环,我正在尝试加载的值 每个月 例如,我的第一次输入开始日期是2016年12月10日结束日期2016年11月11日。信息技术 应增加一个月,并插入表中2年 用于循环容器 InitExpression:Sql server For循环容器SSIS赋值表达式,sql-server,for-loop,ssis,etl,Sql Server,For Loop,Ssis,Etl,我有一个表,列有开始日期和结束日期,我需要输入 我创建了一个for循环,我正在尝试加载的值 每个月 例如,我的第一次输入开始日期是2016年12月10日结束日期2016年11月11日。信息技术 应增加一个月,并插入表中2年 用于循环容器 InitExpression:@windowStart=“10/12/2016” Evalexpression:@WindowStart您正在将字符串值传递给@WindowStart 创建日期时间类型的变量@StartDate,其值为2016-12-10。并使用
@windowStart=“10/12/2016”
Evalexpression:
@WindowStart您正在将字符串值传递给@WindowStart
创建日期时间类型的变量@StartDate
,其值为2016-12-10
。并使用以下表达式:
InitExpression:@windowStart=@StartDate
还要确保@windowStart
和@windowMaxdate
的类型为DateTime
有关更多信息,请查看此类似问题:
伙计们,我找到了解决办法
在执行sql任务之后,我在for循环中添加了一个表达式任务
@[User::WindowStart] = (DT_WSTR,24)(DT_DBTIMESTAMP) dateadd("mm",1,
(@[User::WindowStart]) )
改为在for循环编辑器中的Assign expression中添加此表达式。是否想过在一个ExecuteSQL任务中插入行而不是循环?我只想使用for循环执行此操作我不想使用直接sql语句发布ForLoop容器属性的屏幕截图,以便我们可以看到您在那里执行的操作。Hi Tab,我刚刚添加了图片,它在一个链接中。你能看出来吗?只是一个注释:这是一个非常复杂的实现方法。只需编写一段T-SQL并执行它就会简单得多。如果您正在进行数据活动,那么避免循环和过程代码是很重要的。理解基于集合的方法很重要。这和我只将一条记录放入表中是一样的。循环不会停止执行。其中执行sql任务只插入了一条记录。
@[User::WindowStart] = (DT_WSTR,24)(DT_DBTIMESTAMP) dateadd("mm",1,
(@[User::WindowStart]) )