我有一个SSIS包,可以将一堆XML文件导入到SQL表中。完成XML导入后,我运行一个执行SQL任务来更新一些记录,并导入其他尚未存在的记录。其中一项任务根据电话号码创建用户登录。有时源数据有错误,没有输入数字,或输入重复的数字。我无法控制数据输入,但userlogon表当然需要唯一值。
如何配置Exec SQL Task以简单地忽略PK Violation错误并继续下一条记录?
这是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)
答案 0 :(得分:0)
如果你想提交像你这样的查询,你就不能。 例如,你不能提交一批10行并提交8和失败2。
我不认为这个解决方案是好的,我认为你应该在尝试插入数据之前以某种方式测试登录是否存在,但如果你愿意,你可以将组件的maxNUmberOfErrors配置为一个非常大的数字并尝试插入在循环组件上逐个登录。在故障数达到maxNUmberOfErrors之前,组件发生故障不会导致程序包失败。