>>There is no simpler way (unless changing connection string to use correct database). Dynamic tables / databases require dynamic SQL. Answered the exact same question in almost the same way here
>>
http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/ecc2e569-5a05-41e0-9201-de0a1dcd9870>>
>>Although you may need to create the whole script dynamically, not just USE statement.
>
>There has to be a USE because the rest of the script negotiate with grabbing data from another database. So, one has to be set as the actual and the other one specified in the script where needed when using foreign database tables.
The whole script must be dynamic. You can not dynamically use and then execute another script. It must be a part of the same script.
If it's not broken, fix it until it is.
My Blog