[英]Exporting foreign key from many to many relationship to another table sql
我有桌子
CREATE TABLE [dbo].[CoursesOfferedToBatches] (
[CourseId] VARCHAR (50) NOT NULL,
[Batch] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Batch] ASC, [CourseId] ASC),
CONSTRAINT [FK_OfferedCourses_ToCourses] FOREIGN KEY ([CourseId]) REFERENCES [dbo].[Courses] ([Id]),
CONSTRAINT [FK_CoursesOfferedToBatches_ToBatches] FOREIGN KEY ([Batch]) REFERENCES [dbo].[Batches] ([Id])
);
當我將CourseId作為外鍵從上表導出到下表時,如下圖所示,它給出了下表所示的錯誤
CREATE TABLE [dbo].[StudentsRegisterToCoursesOffered]
(
[StudentId] UNIQUEIDENTIFIER NOT NULL ,
[CourseId] VARCHAR(50) NOT NULL,
PRIMARY KEY ([CourseId], [StudentId]),
CONSTRAINT [FK_StudentsRegisterToCoursesOffered_ToStudents] FOREIGN KEY ([StudentId]) REFERENCES [Students]([StudentId]),
CONSTRAINT [FK_StudentsRegisterToCoursesOffered_ToCoursesOffered] FOREIGN KEY ([CourseId]) REFERENCES [CoursesOfferedToBatches]([CourseId])
)
錯誤:
由於驗證錯誤,更新無法繼續。 請更正以下錯誤,然后重試。
SQL71516 ::引用表'[dbo]。[CoursesOfferedToBatches]'不包含與外鍵中的引用列列表匹配的主鍵或候選鍵。 如果引用的列是計算列,則應保留該列。
我的問題到此結束,但是為了添加參考,我添加了所有相關表格:
CREATE TABLE [dbo].[Courses] (
[Id] VARCHAR (50) NOT NULL,
[Name] VARCHAR (100) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
CREATE TABLE [dbo].[Students] (
[StudentId] UNIQUEIDENTIFIER NOT NULL,
[DepartmentName] VARCHAR (50) NOT NULL,
[Address] VARCHAR (250) NULL,
[TwitterLink] VARCHAR (100) NULL,
[FacebookLink] VARCHAR (100) NULL,
[MemberSince] DATETIME NULL,
[ProfileViews] BIGINT DEFAULT ((0)) NULL,
[CNIC] CHAR (15) NULL,
[AboutMe] VARCHAR (3000) NULL,
PRIMARY KEY CLUSTERED ([StudentId] ASC),
CONSTRAINT [FK_Students_ToStudents] FOREIGN KEY ([StudentId]) REFERENCES [dbo].[Users] ([UserId]),
CONSTRAINT [FK_Students_ToDepartments] FOREIGN KEY ([DepartmentName]) REFERENCES [dbo].[Departments] ([Name])
);
CREATE TABLE [dbo].[Batches] (
[Id] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
表CoursesOfferedToBatches
需要具有自己的主鍵,您已將其創建為復合鍵PRIMARY KEY CLUSTERED ([Batch] ASC, [CourseId] ASC)
。 這是這將是一個外鍵,該化合物鍵StudentsRegisterToCoursesOffered
而不僅僅是CourseId
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.