Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fremdschlüssel, der auf einen 2-Spalten-Primärschlüssel in SQL Server verweist

Natürlich ist es möglich, eine Fremdschlüsselbeziehung zu einem zusammengesetzten Primärschlüssel (mehr als eine Spalte) herzustellen. Sie haben uns die Anweisung nicht gezeigt, mit der Sie versuchen, diese Beziehung herzustellen - sie sollte etwa so lauten:

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

Benutzt du das?? Wenn (ID, Application) ist tatsächlich der Primärschlüssel auf dbo.Libraries , diese Anweisung sollte definitiv funktionieren.

Luk:Nur zur Überprüfung - können Sie diese Anweisung in Ihrer Datenbank ausführen und zurückmelden, was die Ausgabe ist??

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