68

開発サーバーにデータベーステーブルがあります。これは、140万行を含むCSVファイルのインポートルーチンで実行するように設定した後、完全に入力されています。

テーブルでデータベース公開ウィザードを実行したところ、ローカルマシンに286MBのSQLスクリプトがあります。問題は、それを実行する方法がわからないことです。SQL Server Management Studio Expressにロードすると、「操作を完了できませんでした」というアラートウィンドウが表示されます。

このSQLスクリプトを実行する方法について何かアイデアはありますか?

4

6 に答える 6

171

sqlcmdツールを使用してファイルを実行します。

sqlcmd -S myServer\instanceName -i C:\myScript.sql

複数の INSERT を含む大きな SQL ファイル (> 100MB) で原因不明の「スクリプト エラー」が発生した場合は、ファイル内の「INSERT INTO」を「GO INSERT INTO」に置き換えてください。これにより、トランザクションのサイズが縮小されます。

于 2008-10-21T16:09:07.057 に答える
18

CodePlex 上のこのツール ( Big SQL Script File Runner ) は、ログと GUI を使用して任意のサイズのスクリプト ファイルを実行します。

于 2014-06-01T11:59:21.227 に答える
8

Gulzar Nazim の回答に追加: それでも失敗する場合は、オプションを使用して SQL ファイルのコードページ-fを指定してみてください。

sqlcmd -S myServer\instanceName -d databaseName -i C:\myScript.sql -f 65001

SQLite (デフォルトでは UTF-8) から .dump ファイルをインポートしようとしましたが、最初の特殊文字に遭遇した後、sqlcmd がエラーをスローし続けました。-f 65001私のためにそれを修正しました。

于 2015-04-23T13:12:58.660 に答える
1

DTSを使用してCSVファイルを直接インポートしないのはなぜですか?

于 2008-10-21T18:02:17.200 に答える
-9

単一のトランザクション内で大きなものを実行することはお勧めできません。したがって、ファイルを小さくて管理しやすいチャンクに分割することをお勧めします。

もう 1 つのオプションは、CSV データを直接インポートする他の方法を検討することです。

于 2008-10-21T16:10:28.817 に答える