Apocatastasis Asked: 2013-04-26 07:39:37 +0800 CST2013-04-26 07:39:37 +0800 CST 2013-04-26 07:39:37 +0800 CST 如何强制执行可为空的外键? 772 我有两个表之间的关系。外键表可以在主表中有行相关。有一种方法可以强制 FK 列的值为 NULL 或主表中 PK 列的值之一? sql-server sql-server-2008 1 个回答 Voted Best Answer Aaron Bertrand 2013-04-26T07:45:43+08:002013-04-26T07:45:43+08:00 是的,您可以允许外键列为 NULL,使其成为可选关系。 CREATE TABLE dbo.foo(fooid INT PRIMARY KEY); CREATE TABLE dbo.bar(barid INT PRIMARY KEY, fooid INT NULL FOREIGN KEY REFERENCES dbo.foo(fooid)); INSERT dbo.foo SELECT 1; INSERT dbo.bar SELECT 1,1; INSERT dbo.bar SELECT 2,NULL; -- succeeds GO INSERT dbo.bar SELECT 3,2; -- fails 如果这不是您的意思,请详细说明或重新提出您的问题。
是的,您可以允许外键列为 NULL,使其成为可选关系。
如果这不是您的意思,请详细说明或重新提出您的问题。