И двете exec
и execute_sql
изпълняват в собствения си обхват. И промяната в базата данни ще засегне само техния собствен обхват. Така че бихте могли:
set @sql = 'use ' + quotename(@new_db_name) + '; disable trigger t1;'
exec (@sql)
Доколкото знам, няма начин да промените контекста на базата данни на текущия обхват на име на променлива база данни.