在我的SSIS包中,我有一个带有2条语句的执行SQL任务。基本上,它们是:
INSERT INTO table2 SELECT * FROM table1;
TRUNCATE TABLE table1第一条语句失败(记录重复)。但是table1现在是空的!我是否误解了数据库的基本原理?!我预计如果第一条语句失败,整个批处理都会失败。
在执行报告中有预期的错误消息: 1.不能插入重复的键行。2.语句已终止。可能的失败原因等等
我的服务器是SQL server 2012 SP2 CU1、OLEDB connection
据我所知,这个表没有其他的truncate语句。我疯了吗?
发布于 2014-09-10 00:48:11
你需要捕获错误..
INSERT INTO table2 SELECT * FROM table1;
IF @@ERROR = 0
TRUNCATE TABLE table1发布于 2014-09-10 01:39:48
好的,经过一些测试,我确认这是预期的行为。可能的解决方案包括:
使用IF @@的错误(感谢使用GO将行t_m!)
https://stackoverflow.com/questions/25749939
复制相似问题