关于关联表中的references关键字的一些疑问

时间:2014-03-08 16:02:46

标签: sql sql-server database sql-server-2012 rdbms

我是Microsoft SQL Server 的新手,我不是DB。

我有以下疑问:我有一个名为 VulnerabilityAlertDocument_VulnerabilityReference 的表,它是两个表的关联: VulnerabilityAlertDocument VulnerabilityReference 。< / p>

VulnerabilityAlertDocument_VulnerabilityReference 仅包含两个字段:

  • VulnerabilityAlertDocumentId
  • VulnerabilityReferenceId

执行此查询,向我显示有关 VulnerabilityAlertDocument_VulnerabilityReference 表的一些信息:

sp_help VulnerabilityAlertDocument_VulnerabilityReference;

我获得了这个输出:

VulnerabilityAlertDocumentId, VulnerabilityReferenceId
(n/a)
FOREIGN KEY FK_AlertDocument_Reference_AlertDocument    No Action   No Action   Enabled

FOREIGN KEY FK_AlertDocument_Reference_Reference    No Action   No Action   Enabled

PRIMARY KEY (clustered) PK_AlertDocument_Reference  (n/a)   (n/a)   (n/a)

Is_For_Replication

(n/a)
Is_For_Replication
VulnerabilityAlertDocumentId
REFERENCES EarlyWarningsV2.dbo.VulnerabilityAlertDocument (Id)
VulnerabilityReferenceId
REFERENCES EarlyWarningsV2.dbo.VulnerabilityReference (Id)

这个特定部分的确切含义是什么?

Is_For_Replication
VulnerabilityAlertDocumentId
REFERENCES EarlyWarningsV2.dbo.VulnerabilityAlertDocument (Id)
VulnerabilityReferenceId
REFERENCES EarlyWarningsV2.dbo.VulnerabilityReference (Id)

这意味着关联表的 VulnerabilityAlertDocumentId 字段绑定到 VulnerabilityAlertDocument 表的主键值以及 VulnerabilityReferenceId 字段关联表是否绑定到 VulnerabilityReference 主键?

所以这意味着如果我在 VulnerabilityAlertDocument_VulnerabilityReference 中插入一个新行,那么必须在此漏洞中使用此主键和VulnerabilityReference中的另一行存在一行VulnerabilityAlertDocument?

我的解释是否正确?

1 个答案:

答案 0 :(得分:0)

您的解释是正确的。

VulnerabilityAlertDocumentId REFERENCES EarlyWarningsV2.dbo.VulnerabilityAlertDocument (Id) 

指示,您要插入VulnerabilityAlertDocurt_VulnerabilityReference列VulnerabilityAlertDocumentId的值应该已经存在于表VulnerabilityAlertDocument中名为“Id”的列中。 (如果允许,则VulnerabilityAlertDocumentId可以为NULL)。

表VulnerabilityReferenceId的情况类似。