SQL Server - 外键引用错误

时间:2012-04-27 10:19:23

标签: sql-server-2005 foreign-keys primary-key composite-primary-key

我有两个表,Table_1有4列(3个主键)和Table_2有2列。当我尝试在Table_2中创建外键约束时,我收到此错误:

enter image description here

以下是我的表格的定义:

TABLE_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
)

TABLE_2

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

你对如何解决这个问题有任何想法吗?谢谢 -

1 个答案:

答案 0 :(得分:2)

Table_1的主键是所有三个 Field_1Field_2Field_3。要引用另一个表中的键,您必须引用该键中列的所有 - 因此您需要将Field_2Field_3添加到{{1尝试创建外键约束时包含所有三列。

或者,如果Table_2本身是Field_1的键,则通过重新定义主键或仅在{Table_1上添加UNIQUE约束来声明它。 {1}}到Field_1。然后,您就可以创建正在尝试的外键。