回答編集履歴

1 別回答

tamoto

tamoto score 3161

2017/01/17 09:25  投稿

こんにちは。
いまいち質問の意味がわかってないのですが……
* どんどん更新されるmdfの中身を逐一SQLServerに放り込みたい(何度もデータを放り込みたい)
* 今までmdfで管理してたデータをこれからはSQLServerで扱いたい(1回限り、全データを放り込みたい)
この2つのうち、後者が目的だと思うのですが、あってますでしょうか?
後者を行う場合、SQLServerのGUI(SQL Server Management Studio)にmdfの中身を丸ごとSQLServerにインポートする機能があったと思うのですが、それを使うのではダメなんですかね?SQL文を書くとか書かないとかそれ以前の話ですよ。。
後者を行う場合、SQLServerのGUI(SQL Server Management Studio)にmdfの中身を丸ごとSQLServerにインポートする機能があったと思うのですが、それを使うのではダメなんですかね?SQL文を書くとか書かないとかそれ以前の話ですよ。。
---
01/17追記
ローカルのmdfからリモートへデータを追記する方針は変わらないということなので、その方向で回答してみます。
まず、根本的な勘違いがある可能性があります。
ローカルのSQL Server(mdfファイル)とリモートのSQL Serverは「別のSQLサーバ」なので、一つのSQL文でデータを移行するのは不可能です。(正確には、リンクサーバとかのサーバ側の機能を利用すればできるのかもしれないですが、あんまり詳しくないので今回は無視します)
つまり、2つのサーバ間でデータを移行するためには、「ローカルmdfに接続するSQLConnection」と「リモートSQL Serverに接続するSQLConnection」の2つの接続が必要なのです。
それぞれ別々に考えてしまえば、「ローカルからデータを取り出す処理」「リモートにデータを送る処理」の異なる2つの手順を順番に行うだけでいいのです。
まずはデータを取り出す処理だけ実装し、意図したデータが取り出せているかどうか確認してみて下さい。
データが取り出せていれば、後はそれをリモートに放り込むだけです。整合性のチェックとかはがんばってください。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る