SSIS包中控制流 Foreach容器里有个执行SQL任务,出错后怎么跳过继续执行

sweetqueen1 2011-11-14 05:26:28
如题

SSIS包中,控制流部分,有个Foreach循环容器,循环的结果集是SQL语句,然后里面的执行SQL任务,就是执行循环出来的SQL语句
现在如果一条SQL语句出错了,整个循环就终止了,怎么设置,让其跳过这个错误的,继续执行后面查询出来的SQL?


|-----Foreach循环容器--------|-------------------结果集
| |
| 执行SQL任务 |----------------执行SQL
| |
|----------------------------|


结果集查询出来如下格式(只有一列)(设定全局变量Foreach_Name来接收)

update table1 set name='aaa' where ID=1
update table1 set name='bbb where ID=2(比如说这个语句是错误的,bbb后面掉了一个单引号,肯定不能执行)
update table1 set name='bbb' where ID=3
update table1 set name='bbb' where ID=4


将上面得到Foreach_Name做为执行SQL任务的SourceVariable值,然后执行这个语句
现在,如果第二条执行,肯定失败,然后整个循环终止了,第三条和第四条就无法执行了
有什么方法设置下,跳过第二个错误,执行第三条和第四条语句?
...全文
318 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sweetqueen1 2011-11-28
  • 打赏
  • 举报
回复
个人能力比较浅,虽然没得到想要的答案,还是结贴给大家分。
唐诗三百首 2011-11-16
  • 打赏
  • 举报
回复
用 try .. catch .. 可捕獲異常,然後繼續執行.

不過個人建議, 應該想辦法排除Bug, 為何要出錯.
sweetqueen1 2011-11-16
  • 打赏
  • 举报
回复
没有人多给点思路么?顶一下
Ubuntu_Fedora 2011-11-15
  • 打赏
  • 举报
回复
别用foreach,
这样exec(@sql),一个批处理搞定
Mr_Nice 2011-11-14
  • 打赏
  • 举报
回复
LZ可以试试用多播,得到错误行,和正确的执行。然后错误行进行相应的处理,正确行直接执行后续处理。

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧