1

次の表(不要なフィールドは省略されています)と、作成しようとしている関係について考えてみます。

 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_Contractor__c_Account'を作成できません。ALTERTABLEステートメントがFOREIGNKEY制約「FK_Contractor__c_Account」と競合しました。データベース「Contractors」、テーブル「dbo.Account」、列「Id」で競合が発生しました。

関係'FK_Task_Contractor__c'を作成できません。ALTERTABLEステートメントがFOREIGNKEY制約「FK_Task_Contractor_c」と競合しました。データベース「Contractors」、テーブル「dbo.Contractor _c」、列「Id」で競合が発生しました。

メッセージは、実際には存在しないのに、同じ名前の関係と競合しているため、関係を作成できないと理解しています。誰かがここで何が起こっているのか私に教えてもらえますか?

気になる人のために、私はSQL Server 2005 SP4(9.0.5057)を使用しており、テーブルはDBAmpを使用してSalesforceリンクサーバーから作成されます。

4

2 に答える 2

3

このエラーメッセージは、一部のデータが制約を満たしていないことを意味します。スキーマベースの競合が発生したことを意味するものではありません。

于 2012-07-30T18:09:47.917 に答える
0

同じ問題が発生しました...メインテーブルに移動し、ドロップダウンリストをフィードする3つのテーブルで0IDを見つけました...0をテーブルとワラの値に変更しました...それ以上の問題はありません...

于 2015-02-11T13:26:11.983 に答える