Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Clé étrangère référençant une clé primaire à 2 colonnes dans SQL Server

Bien sûr, il est possible de créer une relation de clé étrangère avec une clé primaire composée (plus d'une colonne). Vous ne nous avez pas montré l'instruction que vous utilisez pour essayer de créer cette relation - elle devrait ressembler à :

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

C'est ça que tu utilises ?? Si (ID, Application) est bien la clé primaire sur dbo.Libraries , cette instruction devrait certainement fonctionner.

Luk :juste pour vérifier :pouvez-vous exécuter cette instruction dans votre base de données et indiquer le résultat ? ?

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')