SQLUSA.com
SQL SERVER 2008 GRAND SLAM
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL JOBS SQL Server Training Scripts JOB BANK
  SQL Server 2008 Training Scripts  
  SQL Server 2005 Training Scripts  
News SQL Server Articles SQL Format

How to list all primary and foreign keys in a database?

Execute the following T-SQL example scripts in Microsoft SQL Server Management Studio Query Editor related to Primary Keys and Foreign Keys in a database.

-- List all disabled foreign keys - QUICK SYNTAX

SELECT name AS DisabledForeignKey

FROM sys.foreign_keys

WHERE is_disabled=1

------------

-- Microsoft SQL Server T-SQL list all primary and foreign keys
-- mssql information_schema views - Database primary key and foreign key columns
USE AdventureWorks2008;
SELECT SchemaName=c.table_schema,
       TableName=c.table_name,
       ColumnName=column_name,
       KeyConstraint=constraint_type
FROM   information_schema.table_constraints pk
       INNER JOIN information_schema.key_column_usage c
         ON c.table_name = pk.table_name
            AND c.constraint_name = pk.constraint_name
--WHERE  c.table_schema = 'Sales' -- uncomment it for a specific schema
ORDER BY SchemaName, TableName, ColumnName
GO
 
/* Partial results
 
SchemaName  TableName         ColumnName              KeyConstraint
Sales       SalesOrderDetail  ProductID               FOREIGN KEY
Sales       SalesOrderDetail  SalesOrderDetailID      PRIMARY KEY
Sales       SalesOrderDetail  SalesOrderID            PRIMARY KEY
Sales       SalesOrderDetail  SalesOrderID            FOREIGN KEY
Sales       SalesOrderDetail  SpecialOfferID          FOREIGN KEY
Sales       SalesOrderHeader  BillToAddressID         FOREIGN KEY
Sales       SalesOrderHeader  ContactID               FOREIGN KEY
Sales       SalesOrderHeader  CreditCardID            FOREIGN KEY
Sales       SalesOrderHeader  CurrencyRateID          FOREIGN KEY
Sales       SalesOrderHeader  CustomerID              FOREIGN KEY
Sales       SalesOrderHeader  SalesOrderID            PRIMARY KEY
Sales       SalesOrderHeader  SalesPersonID           FOREIGN KEY

*/
------------
 

-- Check FK-PK violations in entire database - check referential integrity

DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;

GO

------------
 

Related articles:

Schema: How do I show all the primary keys in a database?

Composite Primary key and Foreign key

 

Order SQL 2008 GRAND SLAM Today!
SQLUSA.com Home Page
SQL Server Training at www.sqlusa.com.
SQL Server 2008 Video Training at www.sqlusa.com.
SQL Server 2005 Training Videos at www.sqlusa.com.
Microsoft SQL Server 2000 Training Videos at www.sqlusa.com.

FREE SQL & Business Intelligence / OLAP Short Videos on YOUTUBE.com

Microsoft Community Contributor 2011
Invest in Your SUCCESS!

Search SQLUSA FREE SQL Server Articles & FREE T-SQL Scripts


Copyright 2005-2011, SMI Corp. All Rights Reserved.

SQL Server 2012 is a program product of Microsoft Corporation.
SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.