是否需要将表中的外键列设置为NOT NULL, 如果我们没有明确将外键列写为非空,它会是什么? 它可以包含空值吗?是否需要将外键作为非空
什么是以下两个语句之间的区别:
[PhoneId] [int] NOT NULL FOREIGN KEY REFERENCES [dbo].[tbl_PhoneNumber](PhoneNumberId)
[PhoneId] [int] FOREIGN KEY REFERENCES [dbo].[tbl_PhoneNumber](PhoneNumberId)
区别在于第二个定义将允许列中的空值。第一个关系将是'1 :: 0..n',第二个则是'0..1 :: 0..n'(如果您熟悉这种表示法)。 –
@ypercube - 这取决于ANSI默认数据库选项以及客户端库是否调用['SET ANSI_NULL_DFLT_ON'](http://technet.microsoft.com/en-us/library/ms187375.aspx) –