How can i list foreign key in sql server

In this article we are trying to find how many ways that we can find foreign key sql server.

There are so many ways to find out but currently i am going to talking about only 3 ways.

I am using ReportServer database for this demo.

Method 1.

Using this query we can find all foreign key in current database.

select * from sysobjects where type='f'

Output

Method 2.

Using this query we can find all foreign key in a selected table.

EXEC sp_fkeys 'Catalog'

Output

Method 3.

Using this query we can find all foreign key in a current database with more information.

SELECT RC.CONSTRAINT_NAME FK_Name
, KF.TABLE_SCHEMA FK_Schema
, KF.TABLE_NAME FK_Table
, KF.COLUMN_NAME FK_Column
, RC.UNIQUE_CONSTRAINT_NAME PK_Name
, KP.TABLE_SCHEMA PK_Schema
, KP.TABLE_NAME PK_Table
, KP.COLUMN_NAME PK_Column
, RC.MATCH_OPTION MatchOption
, RC.UPDATE_RULE UpdateRule
, RC.DELETE_RULE DeleteRule
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KF ON RC.CONSTRAINT_NAME = KF.CONSTRAINT_NAME
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KP ON RC.UNIQUE_CONSTRAINT_NAME = KP.CONSTRAINT_NAME

Output

Hope this article is helpful.