Yes, you will need to delete it. The pages you delete will need to be recreated, so take note of what you delete.
You run this at you own risk. This is what we did to fix it, but make SURE you back up the database
before you do this.
Run this SQL:
FROM dbo.sf_draft_pages a
WHERE a.page_id IS NULL
OR NOT EXISTS ( SELECT 1
FROM dbo.sf_page_data x
WHERE x.content_id = a.page_id )
then run this SQL:
SELECT 'DELETE FROM sf_draft_pages WHERE id = ''' + CAST(b.id AS VARCHAR(50)) + '',
'DELETE FROM sf_page_data WHERE id = ''' + CAST(b.page_id AS VARCHAR(50)) + ''
FROM dbo.sf_page_templates a
INNER JOIN dbo.sf_draft_pages b
ON a.id = b.template_id
AND b.is_temp_draft = 0
INNER JOIN dbo.sf_page_data c
ON b.page_id = c.content_id
WHERE NOT EXISTS ( SELECT 1
FROM dbo.sf_page_node x
WHERE x.content_id = c.content_id )
Copy the Delete statements generated from the second SQL and past it in another query window and run it.
That took care of it for us.