This is very simple but effective script. It list all the table without primary keys.
USE DatabaseName; GO SELECT SCHEMA_NAME(schema_id) AS SchemaName,name AS TableName FROM sys.tables WHERE OBJECTPROPERTY(OBJECT_ID,'TableHasPrimaryKey') = 0 ORDER BY SchemaName, TableName; GO
Reference : Pinal Dave (https://blog.sqlauthority.com), BOL