如何在MS SQL Server 2012中的外键列上允许null(空)值并保留参照完整性? 我在子表中创建了对外键的约束。它可以防止删除父表中的主键记录,并且可以。但它不允许我在子表中添加(插入)新记录,将外键列留空。我的应用程序中有很多这种情况,我希望有可能将FK列留空,并且仍然具有参照完整性,至少对于从父表中删除。如何实现???
答案 0 :(得分:0)
您需要设置ON DELETE SET NULL
。这样,您就可以在该列中插入空值。您的字段也应该允许NULL
答案 1 :(得分:0)
空值不是空值。空值可能引用另一个表中的内容,但空值不能引用任何内容,因为它表示没有要引用的内容。因此,允许null值绝不会保留引用完整性。
答案 2 :(得分:-3)
为什么不使用虚拟FK,例如-100?