bcp 实用工具能够在 Microsoft SQL Server 实例和用户指定格式的数据文件间大容量复制数据。 使用 bcp 实用工具能够将大量新行导入 SQL Server 表,或将表数据导出到数据文件。 除非与 queryout 选项一块儿使用,不然使用该实用工具不须要了解 Transact-SQL 知识。 若要将数据导入表中,必须使用为该表建立的格式文件,或者必须了解表的结构以及对于该表中的列有效的数据类型。html
BCP的全部参数:shell
BCP能够执行的4种操做windows
(1) 导入
这个动做使用in命令完成,后面跟须要导入的文件名。
(2) 导出
这个动做使用out命令完成,后面跟须要导出的文件名。
(3) 使用SQL语句导出
这个动做使用queryout命令完成,它跟out相似,只是数据源不是表或视图名,而是SQL语句。
(4) 导出格式文件
这个动做使用format命令完成,后而跟格式文件名。安全
经常使用操做:服务器
1. BCP 可信任链接到本地表导出:工具
用windows认证登录并把text.dbo.name的表导出到D盘的 t_001.txtui
2. BCP 可信任链接到导出查询spa
3. BCP 可信任链接连到远程服务器导出查询code
也可使用下面的T-SQL命令:orm
EXEC master..xp_cmdshell 'BCP test.dbo.name out d:\t_002.txt -c -t -T' EXEC master..xp_cmdshell 'BCP "select name from test.dbo.name" queryout d:\t_004.txt -c -t -T' EXEC master..xp_cmdshell 'BCP tran_test.dbo.uptrans out d:\t_006.txt -c -t -S HOUYAJUN\JHIDCDBS005 -T'
在执行上述命令的时候可能会报错 : 错误提示:消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行
SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,由于此组件已做为此服务器安全配置的一部分而被关闭。系统管理员能够经过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
这个时候须要咱们来开启 :
-- 容许配置高级选项 EXEC master.sys.sp_configure 'show advanced options', 1 -- 从新配置 RECONFIGURE -- 启用xp_cmdshell EXEC master.sys.sp_configure 'xp_cmdshell', 1 --从新配置 RECONFIGURE
用完以后再把其关闭,关闭只须要把 1 变为 0 便可。
上面的语句也能够经过输入用户名和密码的形式出来,以下例句:
EXEC master..xp_cmdshell 'BCP test.dbo.name out d:\t_008.txt -c -t -U"sa" -P"ssssaaaa"'
4. BCP的导入 只须要把上面的 OUT 变为 in 就能够了。
EXEC master..xp_cmdshell 'BCP test.dbo.name in d:\t_002.txt -c -t -U -T'
这个是对刚才导出的数据进行从新的导入,能够很明显的看到表中的数据已经增长了。
经常使用参数:
-f format_file
format_file表示格式文件名。这个选项依赖于上述的动做,若是使用的是in或out,format_file表示已经存在的格式文件,若是使用的是format则表示是要生成的格式文件。-x
这个选项要和-f format_file配合使用,以便生成xml格式的格式文件。-F first_row
指定从被导出表的哪一行导出,或从被导入文件的哪一行导入。-L last_row
指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束。-c
使用char类型作为存储类型,没有前缀且以"\t"作为字段分割符,以"\n"作为行分割符。-w
和-c相似,只是当使用Unicode字符集拷贝数据时使用,且以nchar作为存储类型。-t field_term
指定字符分割符,默认是"\t"。-r row_term
指定行分割符,默认是"\n"。-S server_name[ \instance_name]
指定要链接的SQL Server服务器的实例,若是未指定此选项,BCP链接本机的SQL Server默认实例。若是要链接某台机器上的默认实例,只须要指定机器名便可。-U login_id
指定链接SQL Sever的用户名。-P password
指定链接SQL Server的用户名密码。-T
指定BCP使用信任链接登陆SQL Server。若是未指定-T,必须指定-U和-P。-k
指定空列使用null值插入,而不是这列的默认值。
https://www.cnblogs.com/zerocc/p/3225723.html