首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS中的多个语句执行SQL任务

SSIS中的多个语句执行SQL任务
EN

Stack Overflow用户
提问于 2014-09-10 00:44:39
回答 2查看 9.6K关注 0票数 1

在我的SSIS包中,我有一个带有2条语句的执行SQL任务。基本上,它们是:

代码语言:javascript
复制
INSERT INTO table2 SELECT * FROM table1;
TRUNCATE TABLE table1

第一条语句失败(记录重复)。但是table1现在是空的!我是否误解了数据库的基本原理?!我预计如果第一条语句失败,整个批处理都会失败。

在执行报告中有预期的错误消息: 1.不能插入重复的键行。2.语句已终止。可能的失败原因等等

我的服务器是SQL server 2012 SP2 CU1、OLEDB connection

据我所知,这个表没有其他的truncate语句。我疯了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-10 00:48:11

你需要捕获错误..

代码语言:javascript
复制
INSERT INTO table2 SELECT * FROM table1;
IF @@ERROR = 0
    TRUNCATE TABLE table1
票数 2
EN

Stack Overflow用户

发布于 2014-09-10 01:39:48

好的,经过一些测试,我确认这是预期的行为。可能的解决方案包括:

使用IF @@的错误(感谢使用GO将行t_m!)

  1. Splitting成批。批中的行将执行,但下一批不会执行。
  2. 将行拆分为多个任务(Duh)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25749939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档