Beide exec
en execute_sql
in hun eigen kring lopen. En de wijziging in de database heeft alleen invloed op hun eigen reikwijdte. Dus je zou kunnen:
set @sql = 'use ' + quotename(@new_db_name) + '; disable trigger t1;'
exec (@sql)
Voor zover ik weet, is er geen manier om de databasecontext van het huidige bereik te wijzigen in een variabele databasenaam.