Sye*_*idi 2 sql database sql-server
我是数据库和制作健身房管理系统的新手,我在www.homeandlearn.co.uk上的教程中实现了一个数据库.我没有外键就完成了项目.现在我必须链接表,但我收到此错误:
由于验证错误,无法继续更新.
请更正以下错误,然后重试.SQL71516 ::引用的表'[dbo].[member_info]'不包含与外键中的引用列列表匹配的主键或候选键.如果引用的列是计算列,则应该保留它.
我不知道这个错误是什么.请告诉我如何解决这个问题?我现在必须创建一个新数据库,还是仍然可以在同一个数据库中使用外键?我正在使用Visual Studio 2012.所有帮助将不胜感激.提前致谢.干杯,
我有一个主键,我已将其设置为增加1.看到这是我的表.
CREATE TABLE [dbo].[member_info] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[memberName] NVARCHAR (50) NULL,
[father_name] NVARCHAR (50) NULL,
[age] NCHAR (10) NULL,
[address] NVARCHAR (50) NULL,
[contact] NVARCHAR (50) NULL,
[height] NVARCHAR (50) NULL,
[weight] NVARCHAR (50) NULL,
[chest] NVARCHAR (50) NULL,
[triceps_biceps] NVARCHAR (50) NULL,
[waist] NVARCHAR (50) NULL,
[shoulders] NVARCHAR (50) NULL,
[thighs] NVARCHAR (50) NULL,
[calves] NVARCHAR (50) NULL,
[instructor] NVARCHAR (50) NULL,
[date_of_admission] DATE NULL,
[photo] IMAGE NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
CONSTRAINT [FK_member_info_instructor_info] FOREIGN KEY ([instructor]) REFERENCES
[instructor_info]([instructor])
);
Run Code Online (Sandbox Code Playgroud)
这是我的member_info,下面是我的instructor_info表:
CREATE TABLE [dbo].[instructor_info] (
[InstructorID] INT IDENTITY (1, 1) NOT NULL,
[instructor] NVARCHAR (50) NULL,
[father_name] NVARCHAR (50) NULL,
[age] NCHAR (10) NULL,
[address] NVARCHAR (MAX) NULL,
[contact] NVARCHAR (50) NULL,
[height] NCHAR (10) NULL,
[weight] NCHAR (10) NULL,
[chest] NCHAR (10) NULL,
[triceps_biceps] NCHAR (10) NULL,
[waist] NCHAR (10) NULL,
[shoulders] NCHAR (10) NULL,
[thighs] NCHAR (10) NULL,
[calves] NCHAR (10) NULL,
[memberName] NVARCHAR (50) NULL,
[date_of_admission] DATE NULL,
[photo] IMAGE NULL,
PRIMARY KEY CLUSTERED ([InstructorID] ASC)
);
Run Code Online (Sandbox Code Playgroud)
这是你的桌子 instructor_info
[dbo].[instructor_info]
PRIMARY KEY CLUSTERED ([InstructorID] ASC)
Run Code Online (Sandbox Code Playgroud)
因此,如果要从表中引用该主键member_info,则必须引用该确切的列名(InstructorID).
因此,您当前的FK约束将不起作用 - 您需要引用该列名称,并且必须使用相同的数据类型.
更改member_info要使用的表格
[Instructor_ID] INT
Run Code Online (Sandbox Code Playgroud)
(而不是[instructor] NVARCHAR(50)列),然后将您的FK约束更改为:
CONSTRAINT [FK_member_info_instructor_info]
FOREIGN KEY ([instructor_ID])
REFERENCES [dbo].[instructor_info]([Instructor_ID])
Run Code Online (Sandbox Code Playgroud)
表中的任何外键都必须引用另一个表的主键(或唯一约束) - 它不能只引用您喜欢的任何列....