Sql-Server
如何強制執行可為空的外鍵?
我有兩個表之間的關係。外鍵表可以在主表中有行相關。有一種方法可以強制 FK 列的值為 NULL 或主表中 PK 列的值之一?
是的,您可以允許外鍵列為 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
如果這不是您的意思,請詳細說明或重新提出您的問題。