サーバー間でのデータのコピー
2 つの MicrosoftSQL 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)」を参照してください。
注意 |
---|
データベース全体のコピーの詳細については、「他のサーバーへのデータベースのコピー」を参照してください。 |