在我的SSIS包中,我有一个带有2个语句的执行SQL任务。基本上,它们是:
INSERT INTO table2 SELECT * FROM table1;
TRUNCATE TABLE table1
第一个语句失败(重复记录)。但是table1现在是空的!我是否误解了数据库的基本原理?!如果第一个语句失败,我预计整批都会失败。
在执行报告中,预计会出现错误消息: 1.无法插入重复的键行。 该声明已经终止。可能的失败原因bla-bla
我的服务器是SQL Server 2012 SP2 CU1,OLEDB连接
我知道这个表没有其他截断语句。我疯了吗?
答案 0 :(得分:2)
你需要陷阱错误..
INSERT INTO table2 SELECT * FROM table1;
IF @@ERROR = 0
TRUNCATE TABLE table1
答案 1 :(得分:0)
好的,经过一些测试后我确认这是预期的行为。可能的解决方案包括: