Problém s prvním je, že to, co děláte, je USE 'myDB'
spíše než USE myDB
.předáváte řetězec; ale USE hledá explicitní odkaz.
Poslední příklad funguje pro mě.
declare @sql varchar(20)
select @sql = 'USE myDb'
EXEC sp_sqlexec @Sql
-- also works
select @sql = 'USE [myDb]'
EXEC sp_sqlexec @Sql