2011-07-15 4 views
2

SQL Server 2008では、データベースを右クリックして[スクリプトの生成...]を選択できます。特定の表を選択し、「スクリプトのデータの種類」の下の「データのみ」を選択することができます。これを行うと、自動的にこのようなスクリプトでは、すべての100件のレコードを行を挿入します。SQLデータをスクリプト化するための既定の「処理済みxx合計レコード」の変更

印刷は基本的に「バッチ」のレコードが100のセクションに挿入されている

「100件の合計レコードが処理さ」を各バッチの最後にこれらのPRINTステートメントを追加します。数千レコードを挿入するときにこれは問題ありませんが、100万レコードをインポートすると無駄になります。

この「バッチ」サイズを「1000」のような別の値に変更する方法はありますか?私はスクリプトの作成時にオプションのリストでこれを見つけることができませんでした。この値を変更すると、スクリプトの実行時やその他の問題が発生した場合のパフォーマンスに影響しますか?

+0

検索と交換? –

答えて

0

すぐに問題を解決する必要がありますが、INSERTスクリプトを生成することは、あるデータベースから別のデータベースに何百万ものレコードをコピーする珍しい方法です。このようにしたいいくつかの具体的な理由はありますか?

より典型的な方法は、特に大量のデータを扱うためのbcp.exeまたはSSIS(複雑なニーズがある場合)です。または、両方のデータベースが同じサーバー上にある場合は、INSERT ... SELECT ...が最速の方法になります。 documentationは、純粋なTSQLのさまざまなオプションについて説明し、パフォーマンスに関するアドバイスを提供します。 SSISはより大きなトピックです。

+0

良い点。私はこれまでのシナリオをより詳細に説明しておくべきでした。私は会社の誰かがそのサーバーへの "外部"アクセスから誰にもさせないクライアントを持っています。私はSQL 2008のマシン上にアプリケーションとデータベースを開発しました。残念ながら、クライアント側のターゲットマシンはSQL 2005です。多くの研究の結果、データベース全体を転送するための通常の方法このように「ダウングレード」しています。したがって、私はすべてを処理するためのスクリプトを作成する必要があります。 – Loki70

+0

社内の誰かがあなたのアプリケーションを配備しなければなりませんか? SQL 2005のインストールを検討して、データベースを準備してから、復元するバックアップファイルを送信しましたか?あなたは少なくともあなたのクライアントと同じデータベースバージョンで開発する必要があります。 – Pondlife

+0

良い点ですが、やはりそれはそれより複雑です。私のプロジェクトの一部は、既存のMS AccessデータベースをSQLに移行することでした。詳細には触れずに、Accessデータベースが完成しました。(私が書いたSSISパッケージを介して)SQLに変換することは、最低限に言えば挑戦的でした。 2005年にこのSSISパッケージを試して再書込みしたくないので、私は2008年のデータベースを2005年のデータベースに変換しようとしています。 – Loki70

関連する問題