我正在尝试通过SSIS执行存储过程,它会给我以下错误:
[执行SQL任务]错误:正在执行 查询“Exec sp1?”失败了 以下错误:“过程:sp1 行:66消息:无法插入 对象中的重复键行 'table.sq1'具有唯一索引 'UIX_sp1_Key'。“。可能失败 原因:查询问题, 未设置“ResultSet”属性 没错,参数没有设定 正确,或连接不 建立正确。
实际上存储的Proc sp1
正在截断&将数据重新加载到表中。
我无法弄清楚它试图插入重复记录的确切位置。
提前致谢。
答案 0 :(得分:2)
您的数据必须在键列中具有重复值。您可以临时删除主键(或创建具有相同结构但没有主键定义的另一个表,但这意味着更改存储过程),然后将数据加载到表中。然后使用此SQL语句:
select keycol1 {,keycol2 {,keycol3} ...}, count(*)
from tablename
group by keycol1 {,keycol2 {,keycol3} ...}
having count(*) > 1
这将显示关键列中重复的数据值。
答案 1 :(得分:2)
如果您在加载前截断表格,则必须在源中重复数据。
检查一下,看看有什么。使用Excel或Access或其他一些如果需要帮助。或者删除唯一约束,然后使用聚合查询查询登台表。