Find all tables in a database without a primary key

If you are performing a database audit and want to quickly find out the tables not having a primary key, use this query :

USE [Your DB]

GO
SELECT TABLE_SCHEMA as 'SCHEMA', TABLE_NAME as 'NO_Primary_Key'
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_NAME NOT IN
( SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
) AND TABLE_TYPE = 'BASE TABLE'

1 comment:

  1. How to use sys.objects to get the same info?

    ReplyDelete