I need to significantly reduce the size of a Kentico 7 database.  Looking at the tables using the query below (source), I can see that some of the largest tables in terms of data size are CMS_AttachmentHistory and CMS_VersionHistory:
CREATE TABLE #tmpTableSizes
(
    tableName varchar(100),
    numberofRows varchar(100),
    reservedSize varchar(50),
    dataSize varchar(50),
    indexSize varchar(50),
    unusedSize varchar(50)
)
insert #tmpTableSizes
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
select  * from #tmpTableSizes
order by cast(LEFT(reservedSize, LEN(reservedSize) - 4) as int)  desc
I found a forum post from 2013 that implies it is ok to simply set the AttachmentBinary column to null in the CMS_AttachmentHistory table.
I don't know that there is a similar possibility in the CMS_VersionHistory table.
Simply truncating the tables doesn't work due to FK constraints, so I'm hesitant to go further along that route.
Is there a better way to do this other than a SQL TRUNCATE statement?
 
     
     
    