So you have columns named 20131206, 20131107 and 20131108? You're keeping some type of history for 30 days, but why would you store dates as columns instead of storing the dates in rows? That would allow you to maintain history the for the past 29 days by not touching the rows, delete the 30th day ago and add today as the new day 1. You wouldn't have to dynamically rebuild your table (in fact the structure wouldn't change at all) and you could index the table for performance?
Then again, I might just be misinterpreting the whole thing.