sql >> Base de Datos >  >> RDS >> Sqlserver

Clave externa que hace referencia a una clave principal de 2 columnas en SQL Server

Por supuesto, es posible crear una relación de clave externa con una clave principal compuesta (más de una columna). No nos mostró la declaración que está usando para intentar crear esa relación; debería ser algo como:

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

eso es lo que estas usando?? Si (ID, Application) es de hecho la clave principal en dbo.Libraries , esta declaración definitivamente debería funcionar.

Luk:solo para verificar, ¿puede ejecutar esta declaración en su base de datos e informar cuál es el resultado?

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