How to find foreign key dependencies in SQL Server? How to find foreign key dependencies in SQL Server? sql-server sql-server

How to find foreign key dependencies in SQL Server?


The following query will help to get you started. It lists all Foreign Key Relationships within the current database.

SELECT    FK_Table = FK.TABLE_NAME,    FK_Column = CU.COLUMN_NAME,    PK_Table = PK.TABLE_NAME,    PK_Column = PT.COLUMN_NAME,    Constraint_Name = C.CONSTRAINT_NAMEFROM    INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS CINNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK    ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAMEINNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK    ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAMEINNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU    ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAMEINNER JOIN (            SELECT                i1.TABLE_NAME,                i2.COLUMN_NAME            FROM                INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1            INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2                ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME            WHERE                i1.CONSTRAINT_TYPE = 'PRIMARY KEY'           ) PT    ON PT.TABLE_NAME = PK.TABLE_NAME

You can also view relationships graphically within SQL Server Management studio within Database Diagrams.


try: sp_help [table_name]

you will get all information about table, including all foreign keys


Because your question is geared towards a single table, you can use this:

EXEC sp_fkeys 'TableName'

I found it on SO here:

https://stackoverflow.com/a/12956348/652519

I found the information I needed pretty quickly. It lists the foreign key's table, column and name.

EDIT

Here's a link to the documentation that details the different parameters that can be used: https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-fkeys-transact-sql