Pokud máte kompozitní primární klíč a poté všechny omezení cizího klíče, která na něj odkazují, musí používat všechny sloupce složeného primárního klíče.
Takže ve vašem případě - TableTwo musí odkaz TableOne(ReportID, Date)
Jediným způsobem, jak to obejít, by bylo vytvořit UNIQUE INDEX na TableOne (ReportID) - pak můžete vytvořit odkaz na cizí klíč pouze na toto jedinečné omezení.
Ale to pak vyvolává otázku:proč není ReportID pouze primární klíč, pokud je již jedinečný (protože můžete zadat UNIQUE INDEX na něm) a NOT NULL (protože je součástí složeného PK) ?
Krok 1:vytvořte UNIQUE INDEX :
CREATE UNIQUE NONCLUSTERED INDEX UIX_TableOne ON dbo.TableOne(ReportID);
Krok 2:vytvořte cizí klíč z TableTwo :
ALTER TABLE dbo.TableTwo
ADD CONSTRAINT FK_TableTwo_TableOne
FOREIGN KEY(ReportID) REFERENCES dbo.TableOne(ReportID)