当我试图选择信息从一个数据库复制到另一个使用SSIS。我直接从旧的SSMS中编写新表格,所以它们应该是相同的。它们被设置为[Col1],[Col2],[Col3],[Col4],[Col5],并且具有[Col1]和[Col2]的聚类PK。违反PRIMARY KEY约束插入空表
我开始设立SSIS与OLEDB源与SELECT语句
SELECT [Col1], [Col2], [Col3], [Col4], [Col5] FROM [DBO].[dbo].[table] WHERE [Col5] LIKE 'AB%'
那么SQL Server目标数据流任务。我不断收到主键约束错误,所以我将其更改为OLEDB源和文件目标以进行错误处理。 615911行被写入到数据库和一个额外的49970到该文件。
我找不到拒绝的行之间的共同点。它们都是唯一的,因为它们必须是源表上的PK约束与目标的PK约束相同。我已经检查过,并且目标表中没有任何内容,但是当我尝试从错误输出文件复制到目标表时,仍然出现PK错误。据我所知,目标表中不存在甚至具有相同[Col1]或[Col2]的条目,但其他行确实有重复的[Col1]或[Col2]。
有什么建议吗?
你是绝对肯定的目标表中的PK是两列,而不是只是其中之一? –
再次检查两个表格的模式是否相同。 – chris544
修改您的目的地表格。删除主键。运行包。您的所有数据都应该加载。然后运行一个查询,找到重复的'选择D.Col1,D.Col2 FROM dbo.Table为d GROUP BY D.Col1,D.Col2 HAVING COUNT(1)> 1;'这是否查询得到什么?如果是这样,那么你有你的重复。如果没有,那么你的主键不是你指定的。 – billinkc