大容量数据复制工具。
| bcp {[[database_name.][owner].]{table_name | view_name}
| "query"} {in | out | queryout | format} data_file [-m max_errors] [-f format_file] [-e err_file] [-F first_row] [-L last_row] [-b batch_size] [-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6] [-q] [-C code_page] [-t field_term] [-r row_term] [-i input_file] [-o output_file] [-a packet_size] [-S server_name[\instance_name]] [-U login_id] [-P password] [-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"] |
当部分参数未提供时,BCP 要求从键盘回答提问。
| 参数 | 意义 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| database_name | 数据库 | ||||||||||
| owner | 所有者 | ||||||||||
| table_name | 表名 | ||||||||||
| view_name | 视图名 | ||||||||||
| "query" | 一条查询语句,配合 queryout 项目使用 | ||||||||||
| in | 表示从文件复制到数据库 | ||||||||||
| out | 表示从数据库复制到文件 | ||||||||||
| queryout | 表示把查询结果复制到文件 | ||||||||||
| format | 表示将创建一个格式文件,配合 -f 使用 | ||||||||||
| data_file | 导入或导出数据的文件名 | ||||||||||
| -m max_errors | 允许产生的最大错误数 | ||||||||||
| -f format_file | 指定格式文件位置 | ||||||||||
| -e err_file | 错误文件名,存储无法传输的数据 | ||||||||||
| -F first_row | 指定复制开始行号,默认为 1 | ||||||||||
| -L last_row | 指定复制最后行号,默认为 0 | ||||||||||
| -b batch_size | 指定所复制的每批数据中的行数 | ||||||||||
| -n | 使用数据的本机(数据库)数据类型执行大容量复制操作 | ||||||||||
| -c | 使用字符数据类型执行大容量复制操作 | ||||||||||
| -w | 使用 Unicode 字符执行大容量复制操作 | ||||||||||
| -N | 对非字符数据使用数据的本机(数据库)数据类型和对字符数据使用 Unicode 字符类型执行大容量复制操作 | ||||||||||
| -V (60 | 65 | 70) | 使用早期版本的数据类型执行大容量复制操作 | ||||||||||
| -6 | 使用早期版本 6 / 6.5,建议使用 -V | ||||||||||
| -C code_page | 指定每一列一个排序规则名
|
||||||||||
| -t field_term | 指定字段终止符,默认为制表符 | ||||||||||
| -r row_term | 指定行终止符,默认为换行 | ||||||||||
| -i input_file | 响应文件的名称,包含对每一字段提示问题的响应 | ||||||||||
| -o output_file | 指定接收 bcp 输出(从命令提示重定向)的文件的名称 | ||||||||||
| -a packet_size | 指定发送到和发送自服务器的每个网络数据包的字节数。
4096-65536,默认为 2096 |
||||||||||
| -S server_name[\instance_name] | 指定要连接到的 SQL Server 实例 | ||||||||||
| -U login_id | 指定用于连接到 SQL Server 的登录 ID | ||||||||||
| -P password | 指定登录 ID 的密码。 | ||||||||||
| -T | 指定 bcp 使用网络用户的安全凭据 | ||||||||||
| -v | 报告 bcp 实用工具的版本号和版权 | ||||||||||
| -R | 指定使用为客户端计算机的区域设置定义的区域格式,将货币、日期和时间数据大容量复制到 SQL Server 中 | ||||||||||
| -k | 指定在大容量复制操作中空列应保留一个空值,而不是对插入的列赋予默认值。 | ||||||||||
| -E | 指定标识列的值出现在要导入的文件中。如果没有给出 -E,则正导入的数据文件中此列的标识值将被忽略, | ||||||||||
| -h "hint[,...]" | 指定在大容量复制数据到表或视图时所使用的提示。 |
下面的命令分别从 临时表、表、查询语句 中获得数据输出到文件。
| bcp ##temp_authors out temp_authors.txt -c -Sservername -Usa -Ppassword |
| bcp pubs..titleview out titleview.txt -c -Sservername -Usa -Ppassword |
| bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout Authors.txt -c -Sservername -Usa -Ppassword |