一括コピー操作の実行 (ODBC)
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
ODBC 標準では、SQL Server の一括コピー操作は直接サポートされていません。 SQL Server バージョン 7.0 以降のインスタンスに接続されている場合、SQL Server Native Client ODBC ドライバーは、SQL Server の一括コピー操作を実行する DB ライブラリ関数をサポートします。 このドライバー固有の拡張機能では、一括コピー関数を使用する既存の 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)