次の方法で共有


一括コピー操作の実行 (ODBC)

ODBC 標準では、SQL Server一括コピー操作は直接サポートされていません。 SQL Server バージョン 7.0 以降のインスタンスに接続すると、SQL Server Native Client ODBC ドライバーでは、一括コピー操作を実行するDB-Library関数SQL Serverサポートされます。 このドライバー固有の拡張機能では、一括コピー関数を使用する既存の DB-Library アプリケーションを簡単にアップグレードできる手段が用意されています。 次のファイルには、一括コピー専用のサポートが含まれています。

  • sqlncli.h

    一括コピー関数の関数プロトタイプと定数定義が含まれています。 一括コピー操作を実行する ODBC アプリケーションでは、sqlncli.h をインクルードする必要があります。このファイルは、コンパイル時にアプリケーションのインクルード パスに存在している必要があります。

  • sqlncli11.lib

    リンカーのライブラリ パスに存在し、リンクされるファイルとして指定する必要があります。 sqlncli11.lib は、SQL Server Native Client ODBC ドライバーと共に配布されます。

  • sqlncli11.dll

    実行時に存在する必要があります。 sqlncli11.dllは、SQL Server Native Client ODBC ドライバーと共に配布されます。

注意

ODBC SQLBulkOperations 関数には、SQL Server一括コピー関数とのリレーションシップはありません。 アプリケーションでは、一括コピー操作を実行するために、SQL Server固有の一括コピー関数を使用する必要があります。

一括コピーの最小ログ記録

完全復旧モデルでは、一括読み込みで実行されたすべての行挿入操作が、トランザクション ログに完全に記録されます。 ただし大量のデータを読み込むと、トランザクション ログがすぐにいっぱいになる可能性があります。 特定の条件下では、最小ログ記録が可能になります。 最小ログ記録を行うことで、一括読み込み操作によってログ領域がいっぱいになる可能性が少なくなります。また、これは完全なログ記録よりも効率的です。

最小ログ記録の使用方法については、「 一括インポートでの最小ログ記録の前提条件」を参照してください。

解説

SQL Server 2005 以降でbcp.exeを使用すると、2005 年SQL Server前にエラーが発生しなかった状況でエラーが発生する可能性があります。 これは、新しいバージョンでは bcp.exe でデータ型が暗黙的に変換されなくなったためです。 2005 年SQL Serverより前は、ターゲット テーブルに money データ型がある場合、数値データを money データ型に変換bcp.exe。 ただし、その際には、余分なフィールドは単純に切り捨てられていました。 SQL Server 2005 以降では、ファイルとターゲット テーブルの間でデータ型が一致しない場合、bcp.exeは、ターゲット テーブルに収まるように切り捨てる必要があるデータがある場合にエラーを発生させます。 このエラーを解決するには、対象のデータ型に合わせてデータを修正します。 必要に応じて、2005 年SQL Serverより前のリリースのbcp.exeを使用します。

このセクションの内容

参照

SQL Server Native Client (ODBC)
データの一括インポートと一括エクスポート (SQL Server)