前者の問題は、あなたがしているのは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
前者の問題は、あなたがしているのは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