【发布时间】:2018-08-25 21:50:37
【问题描述】:
您好,很抱歉新手问题。
我有一个非常简单的 SSIS 项目,可以从文件中导入客户姓名。现在一切正常,但是有多个同名条目,我不想重复。
这很好用,但是它会填充重复项:
CREATE TABLE [SLSales].[dbo].[Customer] (
id BIGINT IDENTITY NOT NULL PRIMARY KEY,
name NVARCHAR(100) NOT NULL
);
但是,当我尝试使用它时:
CREATE TABLE [SLSales].[dbo].[Customer] (
id BIGINT IDENTITY NOT NULL PRIMARY KEY,
name NVARCHAR(100) NOT NULL UNIQUE
);
所有记录都失败,我收到一个神秘的 -1071607685 错误代码。
【问题讨论】:
-
你能给出一些示例数据和预期的输出
-
我不得不猜测它在唯一约束上失败并回滚了所有内容。
-
您关于回滚的事情是绝对正确的。我尝试了没有重复值的材料,后一张表一切正常。现在下一个问题是,如果 SSIS 在存在重复数据时回滚所有数据,那么防止它们的最明智的做法是什么?
-
我很好奇是否有更好的答案,但我(仓促实施)的解决方案是导入您的第一个表(没有约束,可以是临时表),然后运行一个 sql 语句使用 where not in 子句将行从第一个表移到第二个表中,以消除重复记录。