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

ODBC 标准不直接支持 SQL Server 大容量复制操作。连接到 SQL Server 版本 7.0 或更高版本的实例时,SQL Server Native Client ODBC 驱动程序支持执行 SQL Server 大容量复制操作的 DB-Library 函数。这个特定于驱动程序的扩展为使用大容量复制函数的现有 DB-Library 应用程序提供了容易实现的升级路径。专用的大容量复制支持包含在以下文件中:

  • sqlncli.h

    包括用于大容量复制函数的函数原型和常量定义。必须在执行大容量复制操作的 ODBC 应用程序中包括 sqlncli.h,并且在编译应用程序时必须将其放在 include 路径中。

  • sqlncli10.lib

    必须放在链接器的库路径中,并将其指定为要链接的文件。sqlncli10.lib 随 SQL Server Native Client ODBC 驱动程序一起分发。

  • sqlncli10.dll

    在执行时必须存在。sqlncli10.dll 与 SQL Server Native Client ODBC 驱动程序一起分发。

注意注意

ODBC SQLBulkOperations 函数与 SQL Server 大容量复制函数没有关系。应用程序必须使用特定于 SQL Server 的大容量复制函数,才能执行大容量复制操作。

按最小方式记录大容量复制

使用完整恢复模式,将在事务日志中完整记录大容量加载所执行的所有行插入操作。对于大型数据加载,这会导致事务日志被迅速填充。在某些情况下,按最小方式记录是可能的。按最小方式记录将减少大容量加载操作填充日志空间的可能性,并且比完整记录更有效。

有关使用按最小方式记录的信息,请参阅在大容量导入中按最小方式记录日志的前提条件

备注

在 SQL Server 2005 或更高版本中使用 bcp.exe 时,可能在 SQL Server 2005 之前未出现错误的情形下出现错误。这是因为在更高版本中 bcp.exe 不再执行隐式的数据类型转换。在 SQL Server 2005 之前,如果目标表有 money 数据类型,则 bcp.exe 会将数字数据转换为 money 数据类型。但是,在这种情况下,bcp.exe 只是截断额外的字段。从 SQL Server 2005 开始,如果文件和目标表的数据类型不匹配,那么,只要有任何数据必须在截断后才能适合放到目标表中,则 bcp.exe 将引发错误。若要解决该错误,请修复数据,使其与目标数据类型匹配。另外,也可以选择使用在 SQL Server 2005 以前的版本中的 bcp.exe。