Penso che tu abbia riscontrato uno strano problema tecnico in SSMS. Sono stato in grado di creare il tuo schema utilizzando SSMS 2014 senza errori. Ha pre-riempito le tre colonne di chiavi primarie composite durante l'aggiunta del nuovo FK. Sono stato attento ad assicurarmi che fossero tutti oscurati prima di iniziare ad aggiungere le due colonne nell'FK. Forse SSMS pensava che una delle righe vuote contenesse ancora dei dati.
Modifica:ho appena avuto un altro pensiero, SSMS è noto per memorizzare nella cache tutte le modifiche apportate durante la modifica di una tabella. Ad esempio, se vai a modificare due tabelle e hai entrambe le finestre di modifica aperte. Quindi cambi il PK in una finestra e poi provi a fare riferimento ad esso nella seconda finestra, si verificherà un errore perché ha memorizzato nella cache quello che era lo schema per la prima tabella quando la finestra è stata aperta per la prima volta.
Ecco il mio DDL generato:
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])