私はWebアプリケーションのSQLサーバーデータベースを持っています。私の要件は、1つのソースデータベースから2-3テーブルデータを読み込み、そのデータをデスティネーションデータベースに挿入することです。私の入力は、ソースデータベースからデータを読み取らなければならないということに基づいて、名前とIDになり、同様の名前がデスティネーションデータベースにすでに存在するかどうかを検証する必要があります。私はC#のWindowsアプリケーションまたはWebアプリケーションを介してこれを行う必要があります。あるデータベースから別のデータベースにSQL Serverデータをエクスポートする
私の研究では、SqlBulkCopyまたはSSISパッケージの使用を推奨しています。次のコードを使用して1つのテーブルデータを転送しようとしました。
using (SqlConnection connSource = new SqlConnection(csSource))
using (SqlCommand cmd = connSource.CreateCommand())
using (SqlBulkCopy bcp = new SqlBulkCopy(csDest))
{
bcp.DestinationTableName = "SomeTable";
cmd.CommandText = "myproc";
cmd.CommandType = CommandType.StoredProcedure;
connSource.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
bcp.WriteToServer(reader);
}
}
私が直面してる問題はそう、表1、ID(主キー)の変更のような表2の値に基づいて、私はSqlDataReaderの中でこれを更新する必要があり、私は2つのテーブルデータをコピーする必要があり、ということです宛先データベースでこの新しいIDを取得するには、最初に1つのテーブルデータを挿入してIDを取得し、次にこのIDをリーダーオブジェクトで更新してから別のSqlBulkCopyを実行する必要があります。これを行うには他に何かありますか?ソースSQLインスタンスで
両方のデータベースが同じSQLインスタンス上にあるかどうかを指定できますか? –
いいえ、同じインスタンスではありません – user1890098