执行大容量复制操作 (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 路径中。
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 或更高版本中使用 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。