You can quickly find all heap tables in SQL Server

So, what is mean?

Long story short,
a table without a clustered index is called Heap. But you can also add non clustered index without a primary key.

You can list all heap tables with the following script.

SELECT + ‘.’ + AS TableName FROM sys.tables AS TBL INNER JOIN sys.schemas AS SCH ON TBL.schema_id = SCH.schema_id INNER JOIN sys.indexes AS IDX ON TBL.object_id = IDX.object_id AND IDX.type = 0 ORDER BY TableName


SELECT TOP 1000, i.type_desc, o.type_desc, o.create_date
FROM sys.indexes i
INNER JOIN sys.objects o
ON i.object_id = o.object_id
WHERE o.type_desc = ‘USER_TABLE’
AND i.type_desc = ‘HEAP’