次の方法で共有


サーバー間でのデータのコピー

2 つの Microsoft SQL Server データベースの間でデータを一括転送するには、まず、転送元データベースのデータをファイルに一括エクスポートする必要があります。次に、そのファイルを転送先データベースに一括インポートします。

重要な注意事項重要

単純復旧モデルを使用するデータベースでは、テーブルへの一括インポートの完了後に、差分バックアップを行うことをお勧めします。一括ログ復旧モデルまたは完全復旧モデルを使用するデータベースでは、ログ バックアップで十分です。詳細については、「SQL Server データベースの完全バックアップおよび差分バックアップの作成」または「トランザクション ログのバックアップ」を参照してください。

bcp または Transact-SQL を使用したサーバー間でのデータのコピー

データをエクスポートまたはインポートするには bcp コマンドを使用できます。また、データをインポートするのに、BULK INSERT ステートメントや INSERT ... SELECT * FROM OPENROWSET(BULK...) Transact-SQL ステートメントを使用できます。詳細については、「bcp ユーティリティを使用した一括データのインポートとエクスポート」および「BULK INSERT または OPENROWSET(BULK...) を使用した一括データのインポート」を参照してください。

bcp コマンドを使用すると、アーキテクチャの異なるプロセッサ上の複数の SQL Server インスタンス間で、ネイティブ形式、文字形式、または Unicode 形式でデータをコピーできます。柔軟な処理が必要な場合は、フォーマット ファイルを使用できます。データのエクスポートに使用した形式またはフォーマット ファイルは、データのインポートにも使用する必要があります。

注意

照合順序が異なるサーバー インスタンス間でデータをコピーする場合は、「異なる照合順序間でのデータのコピー」を参照してください。

Unicode ネイティブ形式での情報の保存

Unicode ネイティブ形式での情報の保存は、SQL Server のインスタンス間で情報をコピーする必要がある場合に便利です。文字データ以外にネイティブ形式を使用すると、時間を節約でき、文字形式とデータ型間の不要な変換を回避できます。拡張文字が Unicode 形式以外の列にコピーされ、拡張文字を表現できない場合は、文字が失われる可能性があります。すべての文字データに対して Unicode 文字形式を使用すると、異なるコード ページを使用しているサーバー間でデータを一括転送を行う場合に、拡張文字の損失を回避できます。ただし、Unicode ネイティブ形式のデータ ファイルは、bcp または一括インポートをサポートする BULK INSERT や INSERT ... SELECT * FROM OPENROWSET(BULK...) などの、Transact-SQL ステートメントで読み取ることができます。

データベース間のデータのその他のコピー方法

bcp や Transact-SQL を使用するほか、一般に、次のいずれかの方法で SQL Server データベース間でデータをコピーすることができます。

  • Integration Services (SSIS) インポートおよびエクスポート ウィザード

    このウィザードは、多種多様なデータ ソースにアクセスできます。SQL Server、フラット ファイル、Microsoft Access、Microsoft Excel、その他の OLE DB プロバイダーとの間でデータをコピーできます。詳細については、「SQL Server インポートおよびエクスポート ウィザードを使用したデータの移動」を参照してください。

  • INSERT ステートメントの一部としての分散クエリ詳細については、「分散クエリ」および「INSERT (Transact-SQL)」を参照してください。

  • SELECT INTO ステートメント。この場合、結果セットを使用して新しいテーブルを作成するように指定します。詳細については、「SELECT (Transact-SQL)」を参照してください。

注意

データベース全体のコピーの詳細については、「他のサーバーへのデータベースのコピー」を参照してください。