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

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

ODBC 标准不直接支持SQL Server大容量复制操作。 连接到 SQL Server 版本 7.0 或更高版本的实例时,SQL Server Native Client ODBC 驱动程序支持执行SQL Server大容量复制操作的DB-Library函数。 这个特定于驱动程序的扩展为使用大容量复制函数的现有 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) 之前,如果目标表具有货币数据类型,bcp.exe已将数值数据转换为货币数据类型。 但是,在这种情况下,bcp.exe 只是截断额外的字段。 从 2005 SQL Server (9.x) 开始,如果文件和目标表之间的数据类型不匹配,bcp.exe将引发错误,如果有任何数据必须截断才能适合目标表。 若要解决该错误,请修复数据,使其与目标数据类型匹配。 (可选)使用 SQL Server 2005 (9.x) 之前发布的bcp.exe。

本节内容

另请参阅

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