पूर्व के साथ समस्या यह है कि आप जो कर रहे हैं वह है USE 'myDB'
इसके बजाय USE myDB
.आप एक स्ट्रिंग पास कर रहे हैं; लेकिन USE एक स्पष्ट संदर्भ की तलाश में है।
बाद वाला उदाहरण मेरे लिए काम करता है।
declare @sql varchar(20)
select @sql = 'USE myDb'
EXEC sp_sqlexec @Sql
-- also works
select @sql = 'USE [myDb]'
EXEC sp_sqlexec @Sql