Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
SQL

How to list all tables referencing a table by Foreign Key in MS SQL

- 04.10.24 - ErcanOPAK
SELECT DISTINCT
    schema_name(fk_tab.schema_id) + '.' + fk_tab.name as foreign_table,
    '>-' as rel,
    schema_name(pk_tab.schema_id) + '.' + pk_tab.name as primary_table
FROM sys.foreign_keys fk
    INNER JOIN sys.tables fk_tab
        on fk_tab.object_id = fk.parent_object_id
    INNER JOIN sys.tables pk_tab
        on pk_tab.object_id = fk.referenced_object_id
WHERE pk_tab.[name] = 'Your table' -- enter table name here
--  and schema_name(pk_tab.schema_id) = 'Your table schema name'
ORDER BY schema_name(fk_tab.schema_id) + '.' + fk_tab.name, 
         schema_name(pk_tab.schema_id) + '.' + pk_tab.name

Columns

  • foreign_table – foreign tables schemas and names – the table you are looking for
  • foreign_table – relationship symbol implicating FK and direction
  • primary_table – primary (referenced) tables names with schema name – the table you provided as a parameter

Rows

  • One row represents one referencing table
  • Scope of rows: all tables referencing table with provided name (and optionally schema)
  • Ordered by referencing table schema and name

Notes

  • There can be more tables with the same name. If that’s the case, uncomment where clause and provide schema name

Sample results

All tables reference with FK Production.Product table in AdventureWorks database.

 

Thanks a lot to DataEdo.com for that amazing article.

 

Related posts:

Date and Time Conversions in SQL Server

SQL Parameter Sniffing — The REAL Fix Nobody Explains Properly

How to get the first and the last day of previous month in SQL Server

Post Views: 89

Post navigation

How to format date in Javascript
Essential Steps to Take After Windows 11 Updates

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

April 2026
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
27282930  
« Mar    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (950)
  • How to add default value for Entity Framework migrations for DateTime and Bool (858)
  • Get the First and Last Word from a String or Sentence in SQL (836)
  • How to select distinct rows in a datatable in C# (805)
  • How to make theater mode the default for Youtube (754)
  • Add Constraint to SQL Table to ensure email contains @ (578)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (564)
  • Average of all values in a column that are not zero in SQL (531)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (489)
  • Find numbers with more than two decimal places in SQL (447)

Recent Posts

  • C#: Use Init-Only Setters for Immutable Objects After Construction
  • C#: Use Expression-Bodied Members for Concise Single-Line Methods
  • C#: Enable Nullable Reference Types to Eliminate Null Reference Exceptions
  • C#: Use Record Types for Immutable Data Objects
  • SQL: Use CTEs for Readable Complex Queries
  • SQL: Use Window Functions for Advanced Analytical Queries
  • .NET Core: Use Background Services for Long-Running Tasks
  • .NET Core: Use Minimal APIs for Lightweight HTTP Services
  • Git: Use Cherry-Pick to Apply Specific Commits Across Branches
  • Git: Use Interactive Rebase to Clean Up Commit History Before Merge

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (950)
  • How to add default value for Entity Framework migrations for DateTime and Bool (858)
  • Get the First and Last Word from a String or Sentence in SQL (836)
  • How to select distinct rows in a datatable in C# (805)
  • How to make theater mode the default for Youtube (754)

Recent Posts

  • C#: Use Init-Only Setters for Immutable Objects After Construction
  • C#: Use Expression-Bodied Members for Concise Single-Line Methods
  • C#: Enable Nullable Reference Types to Eliminate Null Reference Exceptions
  • C#: Use Record Types for Immutable Data Objects
  • SQL: Use CTEs for Readable Complex Queries

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com