Sql server 无法在表中插入重复记录

Sql server 无法在表中插入重复记录,sql-server,tsql,ssis,Sql Server,Tsql,Ssis,我正试图通过SSIS执行存储过程,它给我以下错误: [执行SQL任务]错误:正在执行 查询“Exec sp1?”失败,原因是 以下错误:“过程:sp1” 行:66消息:无法插入 对象中的重复键行 具有唯一索引的“table.sq1” “UIX_sp1_键”。”。可能的失败 原因:查询存在问题, 未设置“ResultSet”属性 正确,未设置参数 正确,或连接不正确 正确建立 实际上,存储的Procsp1正在截断数据并将其重新加载到表中。 我无法弄清楚它究竟在哪里插入重复的记录 提前感谢。您的数据

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

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

实际上,存储的Proc
sp1
正在截断数据并将其重新加载到表中。
我无法弄清楚它究竟在哪里插入重复的记录


提前感谢。

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

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

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

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

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

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

如果在加载前截断表,则源中必须有重复的数据


检查这个,看看有什么。如果需要帮助,请使用Excel或Access或其他类似工具。或者删除唯一约束,然后使用聚合查询查询临时表。

如果在加载前截断表,则源中必须有重复的数据


检查这个,看看有什么。如果需要帮助,请使用Excel或Access或其他类似工具。或者删除唯一约束,然后使用聚合查询查询暂存表。

“我无法确定它试图插入重复记录的确切位置。”-我们的信息比您的少,那么我们应该如何确定哪个记录?我们可以查看唯一索引
“UIX\u sp1\u Key”上的字段。
,然后将其与插入的记录进行比较。如果没有一些代码,我们真的无法提供更多建议。“我无法弄清楚它试图插入重复记录的确切位置。”-我们的信息比你少,那么我们应该如何确定哪个记录?好吧,看看唯一索引
'UIX\u sp1\u Key'
上有哪些字段,然后将其与插入的记录进行比较。如果没有一些代码,我们真的无法提供更多建议。