teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

別回答

2017/01/17 00:25

投稿

tamoto
tamoto

スコア4346

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