【发布时间】:2017-08-20 12:26:26
【问题描述】:
我有两张桌子 - 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 行
无法创建约束或索引。查看以前的错误。
如何解决这个问题?
【问题讨论】:
标签: sql sql-server database tsql azure-sql-server