无法在表中插入重复记录

时间:2011-01-14 04:53:06

标签: sql-server tsql ssis

我正在尝试通过SSIS执行存储过程,它会给我以下错误:

  

[执行SQL任务]错误:正在执行   查询“Exec sp1?”失败了   以下错误:“过程:sp1   行:66消息:无法插入   对象中的重复键行   'table.sq1'具有唯一索引   'UIX_sp1_Key'。“。可能失败   原因:查询问题,   未设置“ResultSet”属性   没错,参数没有设定   正确,或连接不   建立正确。

实际上存储的Proc sp1正在截断&将数据重新加载到表中。 我无法弄清楚它试图插入重复记录的确切位置。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您的数据必须在键列中具有重复值。您可以临时删除主键(或创建具有相同结构但没有主键定义的另一个表,但这意味着更改存储过程),然后将数据加载到表中。然后使用此SQL语句:

select keycol1 {,keycol2 {,keycol3} ...}, count(*)
from tablename
group by keycol1 {,keycol2 {,keycol3} ...}
having count(*) > 1

这将显示关键列中重复的数据值。

答案 1 :(得分:2)

如果您在加载前截断表格,则必须在源中重复数据。

检查一下,看看有什么。使用Excel或Access或其他一些如果需要帮助。或者删除唯一约束,然后使用聚合查询查询登台表。