我有两张桌子 - Educators和Faculties:
CREATE TABLE [dbo].[Educators]
(
[UserId] [nvarchar](128) NOT NULL,
[FacultyId] [smallint] NOT NULL,
[InstitutionUserId] [nvarchar](128) NOT NULL,
CONSTRAINT [PK_Educators]
PRIMARY KEY CLUSTERED ([UserId] ASC)
)
CREATE TABLE [dbo].[Faculties]
(
[InstitutionUserId] [nvarchar](128) NOT NULL,
[FacultyId] [smallint] NOT NULL,
CONSTRAINT [PK_UserFaculties]
PRIMARY KEY CLUSTERED ([InstitutionUserId] ASC, [FacultyId] ASC)
)
该表Faculties
具有由两列 (InstitutionUserId
和FacultyId
) 组成的复合主键。我在表中也有相同的列Educators
。我想用外键将这两个表链接在一起。
所以,这是我的查询:
ALTER TABLE [dbo].[Educators] WITH CHECK
ADD CONSTRAINT [FK_Educators_FacultyId_Faculties_FacultyId]
FOREIGN KEY ([FacultyId], [InstitutionUserId])
REFERENCES [dbo].[Faculties] ([FacultyId], [InstitutionUserId])
但我收到此错误消息:
消息 1776,级别 16,状态 0,第 7 行
引用表 'dbo.Faculties' 中没有与外键 'FK_Educators_FacultyId_Faculties_FacultyId' 中的引用列列表匹配的主键或候选键。消息 1750,级别 16,状态 1,第 7 行
无法创建约束或索引。请参阅以前的错误。
如何解决这个问题呢?