DELETE FROM PageRevision WHERE EXISTS ( SELECT 1 FROM ( SELECT PageId, MAX(Revision) AS MaxRevision FROM PageRevision GROUP BY PageId ) AS MostRecent WHERE PageRevision.PageId = MostRecent.PageId AND PageRevision.Revision < MostRecent.MaxRevision ); DELETE FROM PageRevisionAttachment WHERE EXISTS ( SELECT 1 FROM ( SELECT PageFileId, PageId, MAX(FileRevision) AS MaxFileRevision FROM PageRevisionAttachment GROUP BY PageId, PageFileId ) AS MostRecent WHERE PageRevisionAttachment.PageFileId = MostRecent.PageFileId AND PageRevisionAttachment.PageId = MostRecent.PageId AND PageRevisionAttachment.FileRevision < MostRecent.MaxFileRevision ); DELETE FROM PageRevisionAttachment WHERE EXISTS ( SELECT 1 FROM ( SELECT PageFileId, PageId, MAX(PageRevision) AS MaxPageRevision FROM PageRevisionAttachment GROUP BY PageId, PageFileId ) AS MostRecent WHERE PageRevisionAttachment.PageFileId = MostRecent.PageFileId AND PageRevisionAttachment.PageId = MostRecent.PageId AND PageRevisionAttachment.PageRevision < MostRecent.MaxPageRevision ); DELETE FROM PageFileRevision WHERE EXISTS ( SELECT 1 FROM ( SELECT PageFileId, MAX(Revision) AS MaxPageRevision FROM PageFileRevision GROUP BY PageFileId ) AS MostRecent WHERE PageFileRevision.PageFileId = MostRecent.PageFileId AND PageFileRevision.Revision < MostRecent.MaxPageRevision ); DELETE FROM PageFileRevision WHERE PageFileId NOT IN ( SELECT PageFileId FROM PageRevisionAttachment ); DELETE FROM PageFile WHERE Id NOT IN ( SELECT PageFileId FROM PageRevisionAttachment ); UPDATE [Page] SET Revision = 1; UPDATE PageRevision SET Revision = 1; UPDATE PageRevisionAttachment SET PageRevision = 1, FileRevision = 1; UPDATE PageFileRevision SET Revision = 1; UPDATE PageFile SET Revision = 1;