-- Find All SQL Server Tables in Database With a Primary Key
SELECT 
   c.name as SchemaName, 
   b.name as TableName, 
   a.name as PKname
FROM sys.key_constraints a 
INNER JOIN sys.tables b ON a.parent_object_id = b.OBJECT_ID 
INNER JOIN sys.schemas c ON a.schema_id = c.schema_id 
WHERE a.type = 'PK'

-- Find All SQL Server Tables in Database Without a Primary Key

SELECT 
   c.name as SchemaName, 
   b.name as TableName
FROM sys.tables b 
INNER JOIN sys.schemas c ON b.schema_id = c.schema_id 
WHERE b.type = 'U' 
AND NOT EXISTS (SELECT a.name 
                FROM sys.key_constraints a 
                WHERE a.parent_object_id = b.OBJECT_ID 
                AND a.schema_id = c.schema_id 
                AND a.type = 'PK' )	