SQL Server 2012:由于FOREIGN KEY Contraint

时间:2017-07-18 11:40:10

标签: sql ms-access sql-server-2012-express

我使用导入向导将Access 2010数据库中的数据导入SQL Server表。

我尝试从tblMembers导入,其中包含最重要的列MiID,该列在不同的其他表中用作FK。

似乎在Access表中,由于以前删除了成员,某些记录没有有效的MiID,因此引用被破坏了。

当我尝试将所有数据从tblMembers导入SQL Server时,我收到错误:

  

由于引用了外键约束

,因此无法截断表tblMembers

(翻译自德语,因此错误描述可能略有不同)

我试图列出所有使用MiID作为FK的表名,以及所有约束名,但我无法看清导致问题的原因,除了事实,服务器表已经测试数据,但通过勾选"删除目标表中的行" (在向导中)我认为在插入新数据之前,现有的数据将被删除,任何不匹配的PK / FK关系都应该消失。

那么,我该如何解决失败的导入?

什么可能导致失败?

感谢任何帮助 迈克尔

1 个答案:

答案 0 :(得分:1)

您有三种选择:

  1. 删除SQL Server中表中的外键约束。似乎不需要这些。
  2. 删除包含违规记录的行。
  3. 为不存在的成员添加额外成员。
  4. 第三个是:

    select t.memberid, m.col1, m.col2, . . .
    from ((select t1.memberid from t1 union
           select t2.memberid from t2
          )
         ) t left join
         members m
         on t.memberid = m.memberid;