如何在MS SQL Server 2012中的外键上允许空值?

时间:2017-08-10 14:27:09

标签: sql-server

如何在MS SQL Server 2012中的外键列上允许null(空)值并保留参照完整性? 我在子表中创建了对外键的约束。它可以防止删除父表中的主键记录,并且可以。但它不允许我在子表中添加(插入)新记录,将外键列留空。我的应用程序中有很多这种情况,我希望有可能将FK列留空,并且仍然具有参照完整性,至少对于从父表中删除。如何实现???

3 个答案:

答案 0 :(得分:0)

您需要设置ON DELETE SET NULL。这样,您就可以在该列中插入空值。您的字段也应该允许NULL

答案 1 :(得分:0)

空值不是空值。空值可能引用另一个表中的内容,但空值不能引用任何内容,因为它表示没有要引用的内容。因此,允许null值绝不会保留引用完整性。

答案 2 :(得分:-3)

为什么不使用虚拟FK,例如-100?