我的表中的外键可以为null吗?

时间:2014-07-19 11:38:16

标签: sql-server

我有这个DDL:

CREATE TABLE [dbo].[Test] (
    [TestId]                  VARCHAR (20)   NOT NULL,
    [Title]                   NVARCHAR (100) NOT NULL,
    [TopicId]                 INT            NOT NULL,
    CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED ([TestId] ASC),
    CONSTRAINT [FK_TestTopic] FOREIGN KEY ([TopicId]) REFERENCES [dbo].[Topic] ([TopicId])
);

我希望TopicId的允许值为null或与Topic表中的TopicId匹配的值。

有人可以告诉我如何为此描述外键吗?

2 个答案:

答案 0 :(得分:4)

是的,外键约束列可能允许NULLs。只需更改外键列以允许NULL值。不检查NULL值的引用完整性。这是可选(零或多)关系的常见做法。

答案 1 :(得分:0)

嗯..你可以通过让字段允许空来轻松地做到这一点。但是,请记住这一点,“你正在打破数据建模”。