繁体   English   中英

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

[英]Multiple statements in SSIS Execute SQL Task

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

INSERT INTO table2 SELECT * FROM table1;
TRUNCATE TABLE table1

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

在执行报告中,有预期的错误消息:1.无法插入重复的键行。 2.该语句已终止。 可能的故障原因bla-bla

我的服务器是SQL Server 2012 SP2 CU1,OLEDB连接

我知道此表没有其他截断语句。 我疯了吗?

您需要捕获错误..

INSERT INTO table2 SELECT * FROM table1;
IF @@ERROR = 0
    TRUNCATE TABLE table1

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

  1. 使用IF @@ ERROR(感谢t_m!)
  2. 使用GO将生产线分成批次。 一批中的行将执行,但下一批将不行。
  3. 将行拆分为多个任务(duh)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM