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

Como posso descobrir qual restrição FOREIGN KEY faz referência a uma tabela no SQL Server?


Aqui está:
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'

Dessa forma, você obterá a tabela de referência e o nome da coluna.

Editado para usar sys.tables em vez de sys.objects genéricos conforme sugestão de comentário. Obrigado, marc_s