试图验证对SQL Server外键的理解

时间:2010-04-17 22:09:07

标签: sql sql-server-2008

因此,我正在开展一个学习项目,让自己做一些我在工作中无法做的事情。我只是制作了一个简单的bug和案例跟踪应用程序(我知道有一百万这只是为了使用我没有达到的一些工具)。所以我正在设计我的数据库并意识到我之前从未在我的任何项目中使用过外键,我之前使用过它们但从未真正将列设置为FK。所以我设计了我的数据库如下,我认为这是接近正确的(至少对于初始布局)。 Database Image http://drop.io/download/public/uurp1vxej0abpwu7jsee/895663dedff577359b900cda1726f115b24be90c/Asset/28368622/v3/large_thumbnail

但是当我尝试将FK添加到链接表时,我收到一条错误消息,“关系中存在的表必须具有相同的列数”。我在SQLSMS中通过转到Keys'文件夹'并添加FK来实现这一点。有什么我在这里做错了,我不明白为什么表格必须有相同数量的列才能在表格之间添加FK关系?

1 个答案:

答案 0 :(得分:0)

定义外键关系时,需要指定四件事:

  • 引用表(外键表)
  • 引用表中将形成外键的列。
  • 引用表(主键表)
  • 引用表中构成密钥的列。

我猜你已经错误地选择了上述之一 - 可能你忘记了你需要两次说明关系中涉及的列 - 每个表一次。

以下是它应该如何显示的屏幕截图 - 请注意该列指定了两次。在我的示例中,列的名称略有不同,以证明它们并不总是需要具有相同的名称,但在您的情况下,列名称将相同。

相关问题