Als u een composiet . heeft primaire sleutel, dan alle externe sleutelbeperkingen die ernaar verwijzen, moeten alle kolommen gebruiken van de samengestelde primaire sleutel.
Dus in jouw geval - TableTwo moeten referentie TableOne(ReportID, Date)
De enige manier om dit te omzeilen is door een UNIQUE INDEX te maken op TableOne (ReportID) - dan kunt u alleen een verwijzing naar een externe sleutel maken voor die unieke beperking.
Maar dat roept dan de vraag op:waarom is ReportID . niet alleen de primaire sleutel, als deze al uniek is (omdat je een UNIQUE INDEX kunt plaatsen erop) en NIET NULL (omdat het deel uitmaakt van de samengestelde PK) ?
Stap 1:maak de UNIQUE INDEX :
CREATE UNIQUE NONCLUSTERED INDEX UIX_TableOne ON dbo.TableOne(ReportID);
Stap 2:maak de externe sleutel van TableTwo :
ALTER TABLE dbo.TableTwo
ADD CONSTRAINT FK_TableTwo_TableOne
FOREIGN KEY(ReportID) REFERENCES dbo.TableOne(ReportID)