为什么我新创建的FK关系没有出现在对象资源管理器中?

时间:2011-02-20 17:02:52

标签: sql-server foreign-keys foreign-key-relationship

我刚刚添加了一个表" PackageItems"到现有的SQL Server 2008 R2数据库。我在SQL Server Management Studio中工作。创建新表后,我在该表和另一个名为" Package"的表之间创建了一个关系。关系FK_PackageItems_Package使Package表(PackageID)的主键成为我的新PackageItems表中的外键。两个表都有一个名为PackageID的公共列(int,not null)。

我的问题如下。数据库中每个其他表的主键和外键都在SSMS的“对象资源管理器”面板中清楚地表示。我看到列旁边的金色或灰色键,旁边的括号中也看到PK或FK。但是我新创建的关系(FK_PackageItems_Package)没有以这种方式表示。我做错了吗?

注意,要创建FK关系,我进入了PackageItems的设计视图,单击Relationships图标,单击Add,选择" ..." " Tables and Columns Specification"旁边的按钮。然后在出现的窗口中,我选择Package作为我的主键表和PackageID。我为我的外键表和列选择了PackageItems和PackageID。

希望这不是一个愚蠢的问题。提前谢谢你看看。

2 个答案:

答案 0 :(得分:10)

当您打开“创建外键”对话框窗口时,您会注意到GUI添加了表格设计窗口。配置密钥并关闭窗口后,还必须保存表格设计。

答案 1 :(得分:1)

使用设计视图创建外键时可能会出现问题。如果我尝试使用GUI视图创建外键,则不会创建它。如果我用脚本创建它,它确实如此。

要验证是否已创建外键,可以使用sp_help [TableName]。