【问题标题】:Foreign key relationship can't be created (SQL Server)无法创建外键关系 (SQL Server)
【发布时间】:2018-07-21 16:52:40
【问题描述】:

我先创建了一个 SQL Server 数据库(2 个表),然后尝试通过 SSIS 数据流任务加载数据。在最后一步发生了错误。

当我在数据库中删除两个表之间的关系时,SSIS 任务成功完成并加载数据!但是,在我将数据加载到表中之后,我无法在它们之间创建关系。

基于此,您可以得出结论,当表中没有数据时,可以创建关系。顺便提一下,两个表中的数据类型相同。

我该如何解决?

谢谢!

【问题讨论】:

  • 或者表中已有数据未通过外键约束。
  • 如果我先加载数据然后尝试创建外键约束,它会失败。我可以在表为空时创建约束。
  • 那么请向我们展示表结构,用于尝试建立外键约束的脚本,以及您在尝试创建时收到的完整且准确的错误消息外键

标签: sql sql-server database tsql ssis


【解决方案1】:

SSIS 中的错误似乎是由于外键违规所致。外键关系的目的是防止您加载不良数据。当您在没有 FK 的情况下加载时,您插入了错误的数据并且之后无法创建(受信任的)外键约束。

解决方案是修复源数据或修改包以避免插入引用表中不存在的数据。后者可以通过查找任务来完成,将找到的行沿着快乐的路径发送到目标表。您可以忽略未找到的行,也可以将它们写入错误表或文件。

【讨论】:

  • 谢谢Dan,问题解决了!有一些坏数据与引用表不匹配,导致外键约束问题。我使用查找任务找到了它们。
猜你喜欢
  • 2023-03-09
  • 2013-11-05
  • 2020-04-04
  • 2018-11-04
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多