Vấn đề với cái đầu tiên là những gì bạn đang làm là USE 'myDB'
thay vì USE myDB
.bạn đang chuyển một chuỗi; nhưng USE đang tìm kiếm một tham chiếu rõ ràng.
Ví dụ sau phù hợp với tôi.
declare @sql varchar(20)
select @sql = 'USE myDb'
EXEC sp_sqlexec @Sql
-- also works
select @sql = 'USE [myDb]'
EXEC sp_sqlexec @Sql