【问题标题】:SSIS Duplicate primary key, but the key does not existSSIS重复主键,但该键不存在
【发布时间】:2016-11-18 17:04:24
【问题描述】:

我在 SSIS 中调试一个包。在数据流任务中,我有一个源和目标,在查找组件之间我添加了一些额外的列,这些列将导入到目标中。当我执行数据流任务时,由于“违反主键约束”而失败

问题是某个主键不是重复的,它在目标表中不存在。有这个想法吗?

谢谢

【问题讨论】:

  • 愚蠢的问题,但您是否在添加额外的列后刷新了目标?另外,您是否正在重定向错误行?当发生此类错误时,这始终是一个好主意,这样您就可以查看哪些行导致了问题,这可能会让您更深入地了解正在发生的事情
  • 获取主键,加载数据并查看它,您会看到主键出现在您的眼前......除非您有一个触发器在做一些奇怪的事情
  • 另外,如果可以的话,截断目标表,然后运行它,看看你是否仍然遇到同样的问题。 (当然,如果是生产数据,请不要截断:P)
  • @James H ,Destination 具有结构,因此可以插入从源检索并添加了查找转换的所有列。我有错误表,我知道哪一行导致错误,但问题是该行的特定主键在目标表中不存在,它不重复
  • @Len 可以分享一下CREATE TABLE 语句和一些示例数据,包括问题行吗?

标签: ssis primary-key


【解决方案1】:

如果您收到此消息但重复项不在表中,则重复项在您导入的数据中。由于您的目标表可能包含生产数据,因此我将根据您的原始表创建一个新表。

Select * Into NewTable From OldTable

将您的数据加载到这个没有主键的新表中。

Select PrimaryKeyColumn, Count(*) From NewTable Group By PrimaryKeyColumn Order By Count(*) Desc

这将显示所有重复值。

【讨论】:

    猜你喜欢
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    相关资源
    最近更新 更多