Begge exec
og execute_sql
køre i deres eget omfang. Og ændringen i databasen vil kun påvirke deres eget omfang. Så du kunne:
set @sql = 'use ' + quotename(@new_db_name) + '; disable trigger t1;'
exec (@sql)
Så vidt jeg ved, er der ingen måde at ændre databasekonteksten for det aktuelle omfang til et variabelt databasenavn.