最简单的大容量复制程序执行以下作:
数据文件是在本机模式下创建的;因此,表或视图中所有列的数据以与数据库中相同的格式存储在数据文件中。 然后,可以使用相同的步骤将文件批量复制到服务器,并设置DB_IN而不是DB_OUT。 仅当源表和目标表具有相同的结构时,这才有效。 生成的数据文件也可以通过使用 /n (本机模式) 开关输入到 bcp 实用工具。
若要批量复制 Transact-SQL 语句的结果集,而不是直接从表或视图中复制:
调用 bcp_init 以指定大容量复制,但为表名称指定 NULL。
调用 eOption 设置为 BCPHINTS 的bcp_control,并将 iValue 设置为指向包含 Transact-SQL 语句的 SQLTCHAR 字符串的指针。
调用 bcp_exec 以执行大容量复制作。
Transact-SQL 语句可以是生成结果集的任何语句。 创建数据文件,其中包含 Transact-SQL 语句的第一个结果集。 如果 Transact-SQL 语句生成多个结果集,则大容量复制将忽略第一个结果集之后的任何结果集。
若要创建以与表不同的格式存储列数据的数据文件,请调用 bcp_columns 指定将更改的列数,然后为每个要更改其格式的列调用 bcp_colfmt 。 这是在调用 bcp_init之后 ,但在调用 bcp_exec之前完成的。 bcp_colfmt 指定列数据存储在数据文件中的格式。 在批量复制或传出时,可以使用它。还可以使用 bcp_colfmt 设置行终止符和列终止符。 例如,如果数据不包含制表符,则可以通过使用 bcp_colfmt 将制表符设置为每列的终止符来创建制表符分隔的文件。
批量复制和使用bcp_colfmt时,可以轻松地创建一个格式化文件,描述在上次调用bcp_colfmt后调用bcp_writefmt创建的数据文件。
从格式化文件描述的数据文件批量复制时,请在bcp_init之后、bcp_exec之前调用bcp_readfmt来读取格式化文件。
从数据文件批量复制到 SQL Server 时 ,bcp_control 函数控制多个选项。 bcp_control 设置选项,例如终止前的最大错误数、要启动大容量复制的文件中的行、要停止的行以及批大小。