Sql server SQL Server 2008-创建联接表
我在创建一个简单的连接表(关联表等)时遇到了问题,不管您的风格如何 这些是测试表,所以没有太多内容 第一张桌子是Sql server SQL Server 2008-创建联接表,sql-server,join,create-table,Sql Server,Join,Create Table,我在创建一个简单的连接表(关联表等)时遇到了问题,不管您的风格如何 这些是测试表,所以没有太多内容 第一张桌子是 CREATE TABLE dbo.CareerField( CareerFieldID int IDENTITY(1,1) NOT NULL, CareerFieldName varchar(100) NOT NULL ) 第二张桌子是 CREATE TABLE dbo.Cluster( ClusterID int IDENTITY(1,1) NOT NULL, ClusterNa
CREATE TABLE dbo.CareerField(
CareerFieldID int IDENTITY(1,1) NOT NULL,
CareerFieldName varchar(100) NOT NULL
)
第二张桌子是
CREATE TABLE dbo.Cluster(
ClusterID int IDENTITY(1,1) NOT NULL,
ClusterName varchar(100) NOT NULL
)
创建多对多关系的第三个表(联接表)是
CREATE TABLE dbo.CareerField_Cluster(
CareerFieldID int NOT NULL,
ClusterID int NOT NULL
)
我试图使用以下方法在第三个表中设置外键
ALTER TABLE dbo.CareerField_Cluster
ADD CONSTRAINT FK_CareerField_Cluster_CareerFieldID
FOREIGN KEY(CareerFieldID) REFERENCES dbo.CareerField(CareerFieldID)
ALTER TABLE dbo.CareerField_Cluster
ADD CONSTRAINT FK_CareerField_Cluster_ClusterID
FOREIGN KEY(ClusterID) REFERENCES dbo.Cluster(ClusterID)
然而,我不断地得到一个错误
Msg 1776,第16级,第0状态,第1行
引用的表“dbo.CareerField”中没有与外键“FK\u CareerField\u Cluster\u CareerField”中的引用列列表匹配的主键或候选键。
Msg 1750,第16级,第0状态,第1行
无法创建约束。请参阅前面的错误
我尝试将这两个字段设置为主键,但在创建键时不允许选择单独的表-我无法选择CareerField Did引用CareerField表,然后选择ClusterID引用Cluster表
我在MySQL上没有遇到过这个问题,而且我是SQL Server新手。非常感谢您的帮助。对于您的每个表
CareerField
和Cluster
,请确保您有一个通过约束
指令指定的PK
CREATE TABLE [dbo].[CareerField]
(
[CareerFieldID] [int] IDENTITY(1,1) NOT NULL,
[CareerFieldName] [varchar](100) NOT NULL,
CONSTRAINT [PK_Career] PRIMARY KEY CLUSTERED
(
[CareerFieldID] ASC
)
)
对于每个表
CareerField
和Cluster
,确保通过约束指令指定了PK
CREATE TABLE [dbo].[CareerField]
(
[CareerFieldID] [int] IDENTITY(1,1) NOT NULL,
[CareerFieldName] [varchar](100) NOT NULL,
CONSTRAINT [PK_Career] PRIMARY KEY CLUSTERED
(
[CareerFieldID] ASC
)
)
你需要为被引用的表指定主键。你需要为被引用的表指定主键。当我用头撞桌子后,我会诅咒我的名字好几个小时。我真不敢相信我错过了。谢谢!:)当我的头撞在桌子上之后,我会诅咒我的名字好几个小时。我真不敢相信我错过了。谢谢!:)