2014-05-08 49 views
0

我想向表中添加一个外键。我创建了两个表格。SQL Management Studio 2012外键是混乱

CREATE TABLE madeupbusiness.staff 
(
staffnum int NOT NULL, 
forename varchar(30) NOT NULL, 
surname varchar(30) NOT NULL, 
meeting int NOT NULL, 
PRIMARY KEY (staffnum), 
) 
GO 

会议应使用PK从会议桌创建FK:

CREATE TABLE madeupbusiness.meeting 
(
meetingnum int NOT NULL, 
room varchar(30) NOT NULL, 
PRIMARY KEY (meetingnum), 
) 
GO 

要创建的外键我运行此查询

ALTER TABLE madeupbusiness.staff 
WITH CHECK 
ADD CONSTRAINT FK_staff_meetingnum FOREIGN KEY (meetingnum) 
REFERENCES madeupbusiness.meeting(meetingnum) 
ON DELETE CASCADE 
ON UPDATE CASCADE 
; 
GO 

查询运行,但是当我创建了一个数据库图,其中有一个方形循环来自staffnum键的员工表返回到它。对不起,但我真的不知道如何描述它。两张表之间没有关系。我究竟做错了什么?

我试图从设计视图添加关系,但外键表变灰。

+0

有一个在madeupbusiness.staff表的ALTER TABLE应该BARF没有meetingnum列。这是问题或代码中的错字? – Serpiton

回答

0

如果你可以重建表做到这一点:

CREATE TABLE madeupbusiness.meeting 
    (meetingnum int NOT NULL PRIMARY KEY REFERENCES madeupbusiness.meeting(YourColumnYouWantItShouldBeReferenced), 
    room varchar(30) NOT NULL); 
    GO 
+0

我是SQL服务器的新手。我没有意识到创建表时必须刷新数据库。这就是为什么它没有从其他牌桌拿起PK。对不起浪费人们的时间。 – raybarone

+0

您只需将REFERENCES引用到REFERENCED TABLE中的有效列 –

相关问题