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

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

ODBC 標準では、一括コピー操作SQL Server直接サポートされていません。 バージョン 7.0 以降のインスタンスSQL Server接続されている場合、SQL Server Native Client ODBC ドライバーは、SQL Server一括コピー操作を実行するDB-Library関数をサポートします。 このドライバー固有の拡張機能では、一括コピー関数を使用する既存の 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 ドライバーと共に配布されます。

Note

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

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

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

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

解説

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

このセクションの内容

参照

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