SQL Replication Problem- Missing primary keys

Problem:
There was problem with SQL 2005 replication some tables are not replicated at all.. these tables was empty first thought came in the mind that. This might be because no data is there but other tables have replicated even though they don't have any data. Later realized that these tables are not replicated as they don't have primary key, that's why they have not replicated.

Solution:
1) Find out tables with missing primary key:
Following query can be used to find out missing primary in SQ 2005
SELECT c.name, b.name
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' )
2) Add primary key to missing primary key table.
3) Do database replication initialization again.