我是Microsoft SQL Server的新手,我不喜欢DB。
我有以下疑问:我有一个名为 vulnerability alertdocument_vulnerability ityreference 的表,这是两个表的关联:VulnerabilityAlertDocument和VulnerabilityReference。
vulnerability alertdocument_vulnerability ityreference 只包含两个字段:
- 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)
表示关联表的 vulnerability abilityalertdocumententid 字段绑定到VulnerabilityAlertDocument表的主键值,关联表的 vulnerability abilityreferenceid 字段绑定到 vulnerability abilityreference 主键?
所以这意味着,如果我插入一个新的行在我的VulnerabilityAlertDocument_VulnerabilityReference必须存在一行VulnerabilityAlertDocument与这个主键和另一行在VulnerabilityReference与这个主键?
我的解释正确吗?
你的解释是正确的。
VulnerabilityAlertDocumentId REFERENCES EarlyWarningsV2.dbo.VulnerabilityAlertDocument (Id)
表示要插入到VulnerabilityAlertDocument_VulnerabilityReference的vulnerability alertdocumententid列中的值应该已经存在于VulnerabilityAlertDocument表中名为"Id"的列中。(否则vulnerability alertdocumententid可以是NULL,如果允许的话)。
与表VulnerabilityReferenceId类似。