执行大容量复制操作 (ODBC)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 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,并且在编译应用程序时必须将其放在应用程序的 include 路径中。

  • 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 (9.x) 或更高版本中使用bcp.exe时,你可能会在 SQL Server 2005(9.x)之前没有错误的情况下看到错误。 这是因为在更高版本中 bcp.exe 不再执行隐式的数据类型转换。 在 SQL Server 2005(9.x)之前,如果目标表具有 money 数据类型,则bcp.exe数字数据转换为货币数据类型。 但是,在这种情况下,bcp.exe 只是截断额外的字段。 从 SQL Server 2005(9.x)开始,如果文件类型与目标表之间不匹配,bcp.exe如果有任何数据必须截断以适应目标表,则会引发错误。 若要解决该错误,请修复数据,使其与目标数据类型匹配。 (可选)在 SQL Server 2005(9.x)之前的版本中使用bcp.exe。

本节内容

另请参阅

SQL Server Native Client (ODBC)
大容量导入和导出数据 (SQL Server)