sql >> Database >  >> RDS >> Sqlserver

Hoe kom ik erachter welke FOREIGN KEY-beperking verwijst naar een tabel in SQL Server?

Hier is het:

SELECT 
   OBJECT_NAME(f.parent_object_id) TableName,
   COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName
FROM 
   sys.foreign_keys AS f
INNER JOIN 
   sys.foreign_key_columns AS fc 
      ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN 
   sys.tables t 
      ON t.OBJECT_ID = fc.referenced_object_id
WHERE 
   OBJECT_NAME (f.referenced_object_id) = 'YourTableName'

Op deze manier krijgt u de verwijzingstabel en kolomnaam.

Bewerkt om sys.tables te gebruiken in plaats van generieke sys.objects volgens suggestie van commentaar. Bedankt, marc_s



  1. Haal het voorlaatste record voor elke gebruiker op uit de database

  2. Beveiliging tegen SQL-injectie - enkele aanhalingstekens

  3. BASH MySQL-query naar door komma's gescheiden bestand

  4. Verbinding maken met SQL Server 2008 met Java:aanmelding mislukt vanwege gebruikersfout