0

Table_14 列 (3 つの主キー) と2 列の 2 つのテーブルがありTable_2ます。で外部キー制約を作成しようとするとTable_2、次のエラーが発生します。

ここに画像の説明を入力

私のテーブルの定義は次のとおりです。

表1

CREATE TABLE [dbo].[Table_1]
(
    [Field_1] [tinyint] NOT NULL,
    [Field_2] [tinyint] NOT NULL,
    [Field_3] [tinyint] NOT NULL,
    [Field_4] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
    [Field_1] ASC,
    [Field_2] ASC,
    [Field_3] ASC
)

テーブル_2

CREATE TABLE [dbo].[Table_2]
(
    [Field_1] [tinyint] NOT NULL,
    [Field_2] [tinyint] NOT NULL
) ON [PRIMARY]

これを解決する方法について何か考えはありますか?ありがとう -

4

1 に答える 1

2

の主キーはTable_1、、の3 つすべて です。別のテーブルのキーを参照するには、そのキーのすべての列を参照する必要があります。そのため、外部キー制約を作成しようとするときに と を追加し、3 つの列すべてを含める必要があります。Field_1Field_2Field_3Field_2Field_3Table_2

または、Field_1自体が のキーである場合はTable_1、主キーを再定義するか、 にUNIQUE制約を追加することにより、そのように宣言Field_1Table_1ます。その後、作成しようとしている外部キーを作成できます。

于 2012-04-27T10:41:13.110 に答える