Logo

dev-resources.site

for different kinds of informations.

SQL-Quick tip #8 - Finding foreign key constraints

Published at
4/12/2022
Categories
tsql
sqlserver
sql
mssql
Author
coderallan
Categories
4 categories in total
tsql
open
sqlserver
open
sql
open
mssql
open
Author
10 person written this
coderallan
open
SQL-Quick tip #8 - Finding foreign key constraints

Sql Server tips and tricks

This is part of a series of quick tips and tricks I have accumulated over the year, that I think can be useful for others.
If you have similar short tips and tricks please leave a comment.

All foreign key constraints

A well designed database relates its tables to each other using foreign key relations in order to ensure data integrity. But when the database has hundreds or even thousands of tables it can be a huge challenge finding all the tables related to a specific table you may have to modify.
The query below will find all the foreign key constraints between columns with a specific column name.

DECLARE @colname VARCHAR(200) = 'customer'

SELECT fk_tab.name as [table],    
       pk_columns.name as colname,
       pk_tab.name as [fk_table],
       fk_columns.name as fk_colname
  FROM sys.foreign_keys fk
  JOIN sys.tables fk_tab on fk_tab.object_id = fk.parent_object_id
  JOIN sys.tables pk_tab on pk_tab.object_id = fk.referenced_object_id
  JOIN sys.foreign_key_columns fk_cols on fk_cols.constraint_object_id = fk.object_id
  JOIN sys.columns fk_columns ON fk_columns.object_id = fk_cols.referenced_object_id 
       AND fk_columns.column_id = fk_cols.referenced_column_id
  JOIN sys.columns pk_columns ON pk_columns.object_id = fk_cols.parent_object_id
       AND pk_columns.column_id = fk_cols.parent_column_id
 WHERE fk_columns.name LIKE '%'+ @colname +'%' OR pk_columns.name LIKE '%'+ @colname +'%'
 ORDER BY pk_tab.name
Enter fullscreen mode Exit fullscreen mode

In the Northwind example below, we can see that the CustomerTypeID column of the CustomerCustomerDemo table has a foreign key relation to the primary key column CustomerTypeID of the table CustomerDemographics.

Sql Server Management Studio screenshot

tsql Article's
30 articles in total
Favicon
T-SQL avanzato: tecniche da ricordare
Favicon
SQL Server Management Studio (SSMS)
Favicon
T-SQL , Stored Procedures UNIT Testing - Part 2
Favicon
How to check if a temporary table exists and delete it if it does before creating a temporary table?
Favicon
How to search for text in a SQL Server stored procedure, function, or view?
Favicon
SQL Server 2022 - GENERATE_SERIES
Favicon
SQL Server 2022: Logical Functions - GREATEST & LEAST
Favicon
SQL-Quick tip #15 - Random dates
Favicon
SQL-Quick tip #13 - Index usage
Favicon
SQL-Quick tip #14 - Server information
Favicon
SQL-Quick tip #8 - Finding foreign key constraints
Favicon
SQL-Quick tip #12 - Available disk space
Favicon
SQL-Quick tip #10 - Select table definition
Favicon
SQL-Quick tip #11 - Most intensive queries
Favicon
SQL-Quick tip #9 - Number of rows in all tables
Favicon
How to find an account balance in SQL?
Favicon
SQL-Quick tip #7 - Find stored procedures
Favicon
SQL-Quick tip #6 - Find table or column
Favicon
SQL-Quick tip #5 - Create a sequence of date and time
Favicon
SQL-Quick tip #2 - Randomize rows
Favicon
SQL-Quick tip #4 - Random Int for each row
Favicon
SQL-Quick tip #1 - Range of Int
Favicon
SQL Server Primary Keys
Favicon
Calculating length of ntext data type with T-SQL
Favicon
What are the gotchas when converting a T-SQL statement into a JavaScript RegExp?
Favicon
How to prevent duplicate count value for inner join
Favicon
SQL Server: The Identifier Is Too Long; Max Length Is 128
Favicon
Geohash Open-Source library in TSQL for SQL Server
Favicon
How to monitor backup and restore progress in SQL Server
Favicon
SQL Query Inner Join for SUM Amount

Featured ones: