2011-10-24 16 views
2

2つのテーブルの間にリレーションシップを作成しようとしています。最初の列には4つの列(idP、state、phone、no)があり、2つ目の列には2番目の列(id、fname、lname、city)もあります。しかし、私は彼らの間に関係を作ろうとすると、 "関係の両側は同じ数の列を持たなければならない"というエラーが出ます。まあ、どちらも4列あります。関係の両辺に同じ列数が必要です

+0

"どのように"関係を作ろうとしていますか?データベースには? Entity Frameworkでは? Entity Frameworkのどのバージョンですか?デザイナーで? Code-First、Fluent API、アノテーションEntity Frameworkに関するご質問は何ですか?現在の状態では、あなたの質問は本当に答えられません。 – Slauma

+1

私はこのリンクに従って関係を作っています: http://msdn.microsoft.com/en-us/library/ms189049.aspx –

+2

おそらく例外は、あなたが持っている別の数の外部キー列と主キー列について不満を抱いていますテーブルの列の合計数ではなく、選択されています。 – Slauma

答えて

2

link you providedの下部にある黄色のメモボックスをもう一度読んでください。取得しているエラーは、キーのみを参照しています。キーは同じ数の列で構成されていなければなりません。表の列の合計数は一致する必要はありません。

また、ただの観測です。あなたが提供した2つのテーブルには、キーを作成するのに適した一致する列がないようです。一方の主キーは、他方のキーに一致するフィールド(外部キー)を持つ必要があります。 2番目のテーブルには、それ自身の主キーがありません。表2のidフィールドは外部キーのみですか?

+0

Firstの主キーはidPです。 Secondの主キーはidです。私は、私が関係を作るときにIDを外部キーにしたい。 –

+0

これは1対1の関係でしか機能しません。 1対多の場合は、外部キーを保持するためにテーブル2に別のフィールドを追加する必要があります。 – RThomas

6

Management StudioでFKリレーションシップを作成しようとしたときに同じ問題が発生しましたが、左側のテーブルをクリックするまでコンボボックスが明白でないため、両方のテーブルで列を選択しませんでした。それは意味をなさないはずですが、私は初心者です。 HTH。

+0

MS SQL Management Studioのヒント – laika

0

あなたのPKテーブルにはPKのみがあり、関係を作成するテーブルにはキーが合成されているため、外部キーリレーションを作成するときに表示される他のキーを削除する必要がありますそれらがコンポジットキーの一部であるため、必要なものをFKとして保持してください。 削除後、1つのPkと1つのFKしか接続されません。

関連する問題