sql >> Database >  >> RDS >> Sqlserver

Externe sleutel die verwijst naar een primaire sleutel met 2 kolommen in SQL Server

Natuurlijk is het mogelijk om een ​​refererende sleutelrelatie te creëren met een samengestelde (meer dan één kolom) primaire sleutel. Je hebt ons niet de verklaring laten zien die je gebruikt om die relatie te creëren - het zou zoiets moeten zijn als:

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

Is dat wat je gebruikt?? Als (ID, Application) is inderdaad de primaire sleutel op dbo.Libraries , zou deze verklaring zeker moeten werken.

Luk:gewoon om te controleren - kun je deze verklaring in je database uitvoeren en rapporteren wat de uitvoer is??

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


  1. Hoe mysql-query te vertalen om orm te vervolgen?

  2. Vervang meerdere tekens in een tekenreeks in SQL Server (T-SQL)

  3. MySQL importeert slechts één rij uit CSV

  4. TSQL-draaiprobleem - op zoek naar een betere aanpak