All version data ends up in tblWorkpage and tblWorkProperty but when a version is published the data is copied to tblPage and tblProperty so you need to update both tblWorkProperty and tblProperty in your case.
You can in fact do a publish through SQL, if you call the procedure editPublishPageVersion. I jumped of joy when I found out =)
And if you combine that with a loop, you can publish 3000 pages in no time.
Re.: Version 4
I have been given several spreadsheets from a client that contain the pageid, a property name and the new property value. So I need to either update the property or insert the new value for the property. I have the sql that performs the update, which locates the tblProperty and the tblWorkProperty and updates these values of if these records do not exist then I create them, plus I locate the latest published version of the WorkProperty from querying the WorkPage table ... but my changes are visible on my publishing site but not visible on my live site; unless I physically re-publish the page from within EpiServer ... this is not acceptable as there is over 3000 pages to update.
(Note I have recycled my cms site and my website but still no changes are visible except on my publishing site, which I presume merely looks at the unpublished data rather than the published data)
Can someone explain what I am missing when doing a direct bulk update of published data, maybe a flag or clearing of some strange cache or a date field.
(Note ... I am assuming I can perform a sql update on the published data so it reflect on my live site without the need to physically press any buttons from within my EpiServer portal)