Find foreign keys referencing a table

Finding which table is referenced by a foreign key is easy – just look at the FK definition. Given a table T, this query does the opposite – it reports tables' FKs which reference T.

WITH cte AS (
  SELECT 
    s.name AS SchemaName
  , o.name AS TableName
  , c.name AS ColumnName
  , '[' + s.name + '].[' + o.name + '].[' + c.name + ']' AS ColumnPath
  , o.object_id AS ObjectId
  , c.column_id AS ColumnId
  FROM sys.schemas s
    INNER JOIN sys.objects o ON s.schema_id = o.schema_id
    INNER JOIN sys.columns c ON o.object_id = c.object_id
  WHERE o.type = 'U'
)
SELECT 
  fk.name
, parent.ColumnPath + ' <- ' + child.ColumnPath
FROM sys.foreign_keys fk
  INNER JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
  INNER JOIN cte parent ON parent.ObjectId = fkc.referenced_object_id AND parent.ColumnId = fkc.referenced_column_id
  INNER JOIN cte child ON child.ObjectId = fkc.parent_object_id AND child.ColumnId = fkc.parent_column_id
WHERE parent.SchemaName LIKE '%'
AND parent.TableName = 'YourTableNameHere'
ORDER BY 
  fk.name
, parent.ColumnId

Note that child.ObjectId = fkc.parent_object_id is correct because parent_object_id refers to the parent of the foreign key (constraint) object rather than the parent in the FK relationship.