質問: Azure環境のデータベースの、あるテーブルにデータを新規追加したいです。 しかし、一つのsqlファイルにデータが10万件もあり、10個のファイルがあり大量のデータとなっています。 ローカルにSQL Server2014のマネジメントスタジオがあるのですが、そこでクエリを実行しても、一つのファイルを丸ごと実行しても「サーバーから結果を受信しているときに、トランスポート レベルのエラーが発生しました。 (provider: TCP Provider, error: 0 - セマフォがタイムアウトしました。)」 のようなエラーが出まして、大量過ぎてタイムアウトを起こしているようです。 どうすれば効率よくデータをINSERTできるでしょうか。 ちなみに3000件ずつ実行していくといったやり方をしていて、たまに失敗したりして中途半端にデータができてしまっているかもしれません・・。 よろしくお願いします。
回答: INSERT文を流したいんでしょうか。 もし「データを投入できれば良い」「csvでデータを用意できる」のであれば、 私が以前やった時は bcp コマンドを使いました。 例 ``` bcp "dbname.dbo.tablename" in "C:\testdata.csv" -c -S xxx.database.windows.net -U sa ``` こんなんだっけな。 コマンドは ManagementStudio ではなく、コマンドプロンプトで実行します。 オプションが色々あるんですよね確か。 「bcpコマンド」 とか 「bcp insert」 とかでぐぐると出てくると思います。 【追記】 ああーすみません、でも私が bcp でデータ投入した時も、たしかいくつかのファイルにわけて処理した・・・ような・・・気が・・・? タイムアウトしちゃったからだっけ。どうだっけ。すみません記憶が曖昧で・・・