SQL Server 2000 的 bcp 工具详解及参数说明

需积分: 32 54 下载量 108 浏览量 更新于2024-11-23 1 收藏 7KB TXT 举报
"BCP详细参数.txt" BCP(Bulk Copy Program)是Microsoft SQL Server提供的一种实用工具,用于高效地在SQL Server实例和数据文件之间批量复制数据。它支持多种参数来控制数据导入导出的过程,如数据格式、错误处理、文件定位等。 **主要参数说明:** 1. **database_name**: 指定目标数据库的名称,如果不指定,默认使用当前登录用户的默认数据库。 2. **owner**: 表或视图的所有者,如果执行BCP操作的用户拥有指定的表或视图,这个参数是可选的。 3. **table_name** 或 **view_name**: 数据的来源或目标,用于导入或导出数据。 4. **query**: 一个返回结果集的Transact-SQL查询,用于从查询中导出数据,必须配合`queryout`参数使用。 5. **in / out / queryout / format**: 定义数据流动的方向,`in`表示从文件导入到数据库,`out`表示从数据库导出到文件,`queryout`用于从查询导出,`format`创建格式文件。 6. **data_file**: 包含要复制的数据的文件路径,或者将数据复制到的目标文件。 7. **-m max_errors**: 设置允许的最大错误数量,超过这个数量,BCP操作会停止。 8. **-f format_file**: 指定格式文件,用于定义数据的存储格式。 9. **-e err_file**: 错误文件的路径,保存BCP无法传输的行。 10. **-F first_row / -L last_row**: 分别指定开始复制的行号和结束复制的行号。 11. **-b batch_size**: 每次批量复制的行数,作为单个事务提交。 12. **-n**: 使用数据的本机(数据库)数据类型进行复制。 13. **-c**: 使用字符数据类型进行复制,字段间以制表符分隔,行以换行符结束。 14. **-w**: 使用Unicode字符进行复制,字段间以制表符分隔,行以换行符结束。 15. **-N**: 对非字符数据使用本机类型,对字符数据使用Unicode类型。 16. **-V (60 | 65 | 70)**: 选择与特定SQL Server版本兼容的数据类型。 17. **-6**: 使用SQL Server 6.0或6.5的数据类型,仅用于向后兼容。 18. **-q**: 在连接中启用QUOTED_IDENTIFIERS ON,处理包含空格或引号的表名。 19. **-C code_page**: 指定数据文件中的数据代码页。 20. **-t field_term**: 定义字段间的分隔符,默认是制表符。 21. **-r row_term**: 定义行间的分隔符,默认是换行符。 22. **-i input_file**: 交互模式下,提供字段命令提示问题的响应文件。 23. **-o output_file**: 保存BCP输出的文件路径。 24. **-a packet_size**: 网络数据包的大小,影响数据传输速度。 25. **-S server_name[\instance_name]**: SQL Server实例的名称,可以指定实例。 26. **-U login_id / -P password**: 登录ID和密码,用于身份验证。 27. **-T**: 使用Windows身份验证连接。 28. **-v**: 显示版本信息。 29. **-R**: 区域设置复制。 30. **-k**: 保留空值。 31. **-E**: 保留标识列的值,即使它们是自动增长的。 32. **-h "hint [,...n]"**: 提供额外的复制选项,如"HASH"或"TABLOCK"等。 注意,BCP在SQL Server 6.5及更早版本中对某些数据类型(如sql_variant或bigint)的支持有限,而在新版本中则全面支持。此外,日期格式在不同版本之间可能存在差异,导出时可能会使用ODBC格式而不是早期版本的格式。在使用BCP时,确保对数据格式和代码页有充分理解,以避免数据丢失或格式错误。