【问题标题】:Cannot insert duplicate key row in object with unique index when there is no actual duplicate当没有实际重复时,无法在具有唯一索引的对象中插入重复的键行
【发布时间】:2019-11-26 01:11:59
【问题描述】:

尝试通过 SSIS ETL 作业插入表中不存在的记录时,我收到“无法在对象中插入重复的键行”错误。但是,当我使用“where”子句来指定作业所抱怨的确切记录时,不会出现此错误。

例如,我会收到主键错误(100、200、300)。我已经确认源表中不存在此组合,因此我知道该级别不存在错误。但是,当我放置一个 where 子句过滤源表以使第一个主键字段值只有“100”的记录时,作业运行没有错误。这可能是缓冲区问题还是环境问题?

【问题讨论】:

  • 不,这不会是缓冲区或环境问题。第一个键的数据类型是什么,如果是整数那么'100','0100'会一样。
  • 您可能试图在插入时插入 2 个或更多具有相同键的记录。错误消息是相同的,即使它们都没有被插入。

标签: sql-server indexing ssis ssms etl


【解决方案1】:

我认为您的主键数据类型是 int 并且在表 '0100' 中已经存在并且与 100 相同,请使用通配符验证 (00100,0100,000100) 之类的记录是否已经存在那么这是一个不同的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多