Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Chiave esterna che fa riferimento a una chiave primaria a 2 colonne in SQL Server

Ovviamente è possibile creare una relazione di chiave esterna con una chiave primaria composta (più di una colonna). Non ci hai mostrato la dichiarazione che stai usando per provare a creare quella relazione - dovrebbe essere qualcosa del tipo:

ALTER TABLE dbo.Content
   ADD CONSTRAINT FK_Content_Libraries
   FOREIGN KEY(LibraryID, Application)
   REFERENCES dbo.Libraries(ID, Application)

È quello che stai usando?? Se (ID, Application) è infatti la chiave primaria su dbo.Libraries , questa affermazione dovrebbe sicuramente funzionare.

Luk:solo per controllare:puoi eseguire questa istruzione nel tuo database e riportare qual è l'output??

SELECT
    tc.TABLE_NAME,
    tc.CONSTRAINT_NAME, 
    ccu.COLUMN_NAME
FROM 
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
INNER JOIN 
    INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu 
      ON ccu.TABLE_NAME = tc.TABLE_NAME AND ccu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
WHERE
    tc.TABLE_NAME IN ('Libraries', 'Content')