指定复合外键

时间:2011-07-03 22:56:49

标签: sql sql-server sql-server-2008

我正在尝试用两个不同的表中的两个值创建一个外键,一些指针将不胜感激!

以下是我正在使用的代码:

CREATE TABLE [dbo].[EmployeeUnsetZone](
    [EmployeeID] [char](2) NULL,
    [ZoneOfficeID] [int] NOT NULL,
    [ZoneID] [char](4) NULL
    CONSTRAINT EmployeeUnsetZone_EmployeeFK FOREIGN KEY([EmployeeID],[ZoneID])
    REFERENCES [Employee]([ID]), [ZoneByOffice]([ID])
)

1 个答案:

答案 0 :(得分:1)

我会用:

CREATE TABLE [dbo].[EmployeeUnsetZone](
  [EmployeeID] [char](2) NULL,
  [ZoneOfficeID] [int] NOT NULL,
  [ZoneID] [char](4) NULL,
  PRIMARY KEY ([EmployeeID], [ZoneID]),
  CONSTRAINT fk_employeeid FOREIGN KEY([EmployeeID]) REFERENCES [Employee]([ID]),
  CONSTRAINT fk_zoneid FOREIGN KEY([ZoneID]) REFERENCES [ZoneByOffice]([ID])
)

主键将停止重复,并设置两列的聚簇键以更好地进行搜索。