[英]Trap Error rows in SSIS Execute SQL Task
我有一个SSIS包,可将一堆XML文件导入SQL表。 XML导入完成后,我运行Execute SQL任务来更新一些记录,并导入其他尚不存在的记录。 其中一项任务是根据用户的电话号码创建用户登录名。 有时源数据有错误,没有输入任何数字,或输入了重复的数字。 我无法控制数据输入,但是userlogon表当然需要唯一的值。
如何配置Exec SQL任务以简单地忽略PK违规错误并继续下一条记录?
这是SQL代码:
insert into Logins
select REPLACE(LTRIM(REPLACE(Customer_Number, '0', ' ')), ' ', '0'), RIGHT(customer_number,4) + EFFDAT, Company_Name, Customer_Number, Email_Address, 0, CU_Allow_Web_Ordering, 0, 0, 1 from CUSTOMER_MASTER_FILE where CUSTOMER_NUMBER not in
(select CustomerNumber from Logins)
如果您想提交像您一样的查询,则不能。 例如,您不能提交一批10行并且提交8行,而失败2行。
我认为这种解决方案不是很好,我认为您应该尝试以某种方式测试登录名是否存在,然后再尝试插入数据,但是如果您愿意,可以将组件的maxNUmberOfErrors配置为一个非常大的数字,然后尝试插入一个登录名。由一个循环组件。 在失败次数达到maxNUmberOfErrors之前,组件失败不会导致程序包失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.