私は別のサーバー上コピー内容
+--------+-----------+----------+
| UserId | FirstName | LastName |
+--------+-----------+----------+
| 123 | Bob | Smith |
| 456 | John | Doe |
+--------+-----------+----------+
(UserTable
それを呼び出す)に似たSQLテーブルを持って、私はテーブルを持っている(UserBackupTable
それを呼び出す)
+----------+--------+-----------+----------+
| Location | UserId | FirstName | LastName |
+----------+--------+-----------+----------+
| A | 123 | Bob | Smith |
| B | 456 | John | Doe |
+----------+--------+-----------+----------+
1つの列(Location
)の追加を除いて、2つの表は同じです。私は、バックアップ/私は手動を入力する必要がする40の以上の列を持っているとき、これは動作しますが、私にとっては非常に効率的ではありません
var dataToCopy = userDb.UserTable.Select(user => new UserBackup
{
Location = _location,
FirstName = user.FirstName,
LastName = user.LastName
}).ToList();
backupDb.UserBackups.AddRange(dataToCopy);
より良い方法でUserTable
UserBackupTable
にコピーしたいと思います。これらは必要な場合のデータベースの最初のモデルです。
この質問を入力した時点で、これらの40件の課題を記述できました。あなたは実際にどのような解決策を探していますか?生のSQLはオプションですか? – CodeCaster
私は実際にそれを書いて、それは動作し、ちょうど間違って感じる...間違っています。より良い方法があるはずです。 – gilliduck
SqlBulkCopyクラスがあるので、トランザクションサポート、進捗レポート、およびプロセスのキャンセル機能により、DataReaderを使用して大量のデータを1つのデータベースから別のデータベースに高速にコピーできます。私は過去にOracleからMSSQLにデータをコピーするのにも成功しました。しかし、それを行うには5行を少し超えるコードを書く必要があります。https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy%28v=vs.110%29.aspx ?f = 255&MSPPError = -2147217396 – Arie