SQL ステートメントを使用して現在のデータベースを切り替えようとしています。次のことを試しましたが、すべて失敗しました。
-- 1
USE @DatabaseName
-- 2
EXEC sp_sqlexec @Sql -- where @Sql = 'USE [' + @DatabaseName + ']'
もう少し詳細を追加します。
編集: 変数が設定されている 2 つの別々のデータベースでいくつかの操作を実行したいと思います。次のようになります。
USE Database1
SELECT * FROM Table1
USE Database2
SELECT * FROM Table2
ベストアンサー1
前者の問題は、 .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