SQL Server 2005无法创建关系,因为它';s与自身相冲突(?)

SQL Server 2005无法创建关系,因为它';s与自身相冲突(?),sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,考虑下表(省略了不必要的字段)和我试图创建的关系: Contractor__c |Task |Account |----------------------------|---------------------|---------------| |Contractor__c NCHAR(18) NULL|WhatId NCHAR(18) NULL|Id NCHAR(18) PK| |Id NCHAR(18) P

考虑下表(省略了不必要的字段)和我试图创建的关系:

 Contractor__c               |Task                 |Account
|----------------------------|---------------------|---------------|
|Contractor__c NCHAR(18) NULL|WhatId NCHAR(18) NULL|Id NCHAR(18) PK|
|Id            NCHAR(18) PK  |                     |               |

 FK_Contractor__c_Account
|--------------------------------------|
|PK        |FK                         |
|----------|---------------------------|
|Account.Id|Contractor__c.Contractor__c|

 FK_Task_Contractor__c
|----------------------------|
|PK              |FK         |
|----------------|-----------|
|Contractor__c.Id|Task.WhatId|
听起来和看起来都很简单,但这两种关系都无法保存到数据库中,我发现这两种关系都有以下错误:

无法创建关系“FK_承包商_uuC_账户”。圣坛 TABLE语句与外键约束冲突 “FK_承包商c_账户”。数据库中发生冲突 “承包商”,表“dbo.Account”,栏“Id”

无法创建关系“FK\U任务\承包商\ c”。圣坛 TABLE语句与外键约束冲突 “FK_任务_承包商_c”。数据库中发生冲突 “承包商”,表“dbo.Contractor_c”,第“Id”列

我理解这些信息,因为它无法创建关系,因为它与存在的同名关系冲突,即使实际上没有。有人能告诉我这里发生了什么事吗


对于任何关心此问题的人,我使用的是SQL Server 2005 SP4(9.0.5057),这些表是使用DBMP从Salesforce链接服务器创建的。

此错误消息意味着某些数据不满足约束。这并不意味着发生了基于模式的冲突。

我也有同样的问题。。。我进入我的主表,在三个表中发现了一个0 id,这些表提供了DropDownList。。。我将0更改为表中的一个值,然后wala。。。没有其他问题了……

我也这么想。是因为某些列是可为null的吗?FKs跳过空值。编写一个左连接查询,找出哪些数据不匹配。我在正常和反向关系中的表之间进行了左连接和连接。没有一个出错,所以我仍在努力找出问题所在。最终Salesforce的数据丢失了。我已经放弃了建立关系的尝试。