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 SCH.name + ‘.’ + TBL.name 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 o.name, 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’
ORDER BY o.name