Jeg tror, du må have ramt en underlig fejl i SSMS. Jeg var i stand til at oprette dit skema ved hjælp af SSMS 2014 uden nogen fejl. Den udfyldte de tre sammensatte primærnøglekolonner på forhånd, da den nye FK blev tilføjet. Jeg var omhyggelig med at sikre mig, at de alle var blanke, før jeg begyndte at tilføje de to kolonner i FK. Måske troede SSMS, at en af de tomme rækker stadig havde data i sig.
Edit:Havde lige en tanke mere, SSMS er kendt for at cache alle ændringer, der foretages, når man redigerer en tabel. For eksempel, hvis du går til at ændre to tabeller og har begge redigeringsvinduer åbne. Så ændrer du PK'en i det ene vindue og prøver derefter at henvise til den i det andet vindue, den vil fejle, fordi den har cachelagret, hvad skemaet var for den første tabel, da vinduet først blev åbnet.
Her er min genererede DDL:
CREATE TABLE [dbo].[AppRegion](
[appname] [nvarchar](50) NOT NULL,
[isocode] [char](5) NOT NULL,
CONSTRAINT [PK_AppRegion] PRIMARY KEY CLUSTERED
(
[appname] ASC,
[isocode] ASC
)
) ON [PRIMARY]
CREATE TABLE [dbo].[Translation](
[ResourceKey] [nvarchar](128) NOT NULL,
[appname] [nvarchar](50) NOT NULL,
[isocode] [char](5) NOT NULL,
[text] [nvarchar](400) NULL,
CONSTRAINT [PK_Translation] PRIMARY KEY CLUSTERED
(
[ResourceKey] ASC,
[appname] ASC,
[isocode] ASC
)
) ON [PRIMARY]
ALTER TABLE [dbo].[Translation] ADD CONSTRAINT [FK_Translation_AppRegion] FOREIGN KEY([appname], [isocode])
REFERENCES [dbo].[AppRegion] ([appname], [isocode])