コンポジットがある場合 主キー、次にすべて それを参照する外部キー制約は、すべての列を使用する必要があります 複合主キーの。
だからあなたの場合 - TableTwo
必須 参照 TableOne(ReportID, Date)
これを回避する唯一の方法は、UNIQUE INDEX
を作成することです。 TableOne (ReportID)
で - 次に、その一意の制約のみへの外部キー参照を作成できます。
しかし、ここで疑問が生じます:なぜ ReportID
ではないのですか? すでに一意である場合は、主キーのみ (UNIQUE INDEX
を配置できるため) NULL (複合 PK の一部であるため) ?
ステップ 1:UNIQUE INDEX
を作成する :
CREATE UNIQUE NONCLUSTERED INDEX UIX_TableOne ON dbo.TableOne(ReportID);
プレ>ステップ 2:
TableTwo
から外部キーを作成する :ALTER TABLE dbo.TableTwo ADD CONSTRAINT FK_TableTwo_TableOne FOREIGN KEY(ReportID) REFERENCES dbo.TableOne(ReportID)
プレ>