2

我有一个 SSIS 包,可以将一堆 XML 文件导入 SQL 表。XML 导入完成后,我运行一个执行 SQL 任务来更新一些记录,并导入其他不存在的记录。其中一项任务根据他们的电话号码创建用户登录。有时源数据有错误,没有输入数字,或者输入了重复的数字。我无法控制数据输入,但 userlogon 表当然需要唯一值。

如何将 Exec SQL 任务配置为简单地忽略 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)
4

1 回答 1

0

如果你想提交像你这样的查询,你不能。例如,您不能提交一批 10 行并提交 8 并失败 2。

我不认为这个解决方案很好,我认为你应该在尝试插入数据之前以某种方式测试登录是否存在,但是如果你愿意,你可以将组件的 maxNumberOfErrors 配置为一个非常大的数字并尝试插入登录一个通过一个循环组件。组件失败不会导致包失败,直到失败次数达到 maxNUMberOfErrors。

于 2012-07-16T08:46:10.643 回答