Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Chave estrangeira referenciando uma chave primária de 2 colunas no SQL Server


Claro que é possível criar um relacionamento de chave estrangeira com uma chave primária composta (mais de uma coluna). Você não nos mostrou a declaração que está usando para tentar criar esse relacionamento - deve ser algo como:
ALTER TABLE dbo.Content
   ADD CONSTRAINT FK_Content_Libraries
   FOREIGN KEY(LibraryID, Application)
   REFERENCES dbo.Libraries(ID, Application)

É isso que você está usando?? Se (ID, Application) é de fato a chave primária em dbo.Libraries , esta declaração deve definitivamente funcionar.

Luk:apenas para verificar - você pode executar esta instrução em seu banco de dados e relatar qual é a saída?
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')