わかりました、これは私を完全に困惑させています。C# を使用してデータベースを切り替えるにはどうすればよいですか? 以下は機能しません。また、SQL mgmt studio で使用してみましたが、動作するには Go が単独で接続されている必要があるようです。
sqlCmd.CommandText = @"USE [" + db + "] GO";
何か案は?
接続オブジェクトの接続文字列は、データベースに名前を付けます。新しいデータベースを参照する新しい接続オブジェクトを使用する必要があります。
GO
SQL の一部ではありません。これは、Sql Server Management Studio (およびその他の Microsoft ユーティリティ) が使用する特別なものであり、「バッチ」の分離を示します。すべての GO はExecuteXXXXQuery
、C# のアクションに変換されます。
あなたのコードはあなたが投稿したもの以上のものであると想定しているので、元のクエリが
select * into #t from foo
use [someOtherDatabase]
GO
insert into foo select * from #t
これがC#で来るのは
using(var cmd = SqlCommand("", connectionString))
{
cmd.CommandText = @"select * into #t from foo
use [someOtherDatabase]";
cmd.ExecuteNonQuery();
cmd.CommandText = "insert into foo select * from #t";
cmd.ExecuteNonQuery();
}