We can write a query like below to get all the Tables with no Primary key constraint:
SELECT T.name 'Table without Primary Key'
FROM SYS.Tables T
WHERE OBJECTPROPERTY(object_id,'TableHasPrimaryKey') = 0
AND type = 'U'
We can write a query like below to get all the Tables with Primary key constraint:
SELECT T.name 'Table with Primary Key'
FROM SYS.Tables T
WHERE OBJECTPROPERTY(object_id,'TableHasPrimaryKey') = 1
AND type = 'U'
Let us understand this with example:
CREATE DATABASE SqlHintsDemoDB
GO
USE SqlHintsDemoDB
GO
/*Let us create Customers table with Primary Key.*/
CREATE TABLE dbo.Customers (
CustomerId int IDENTITY (1, 1)
PRIMARY KEY CLUSTERED NOT NULL ,
FirstName Varchar(50),
LastName Varchar(50))
GO
/*Let us create Orders Table without any primary key.*/
CREATE TABLE dbo.Orders (
OrderId int IDENTITY (1, 1) NOT NULL ,
CustomerId int NOT NULL ,
CreationDT DATETIME NOT NULL)
GO
Now let us run the queries to get the list of all Tables with or without Primary Keys and verify the result:
