SQL Server[转]使用BCP导出导入数据

正文转自:http://www.cnblogs.com/zerocc/p/3225723.html

bcp 实用工具可以在 Microsoft SQL Server
实例和用户钦命格式的数据文件间大容积复制数据。  使用
bcp 实用工具能够将多量新行导入 SQL Server
表,或将表数据导出到数据文件。 除非与
queryout 选项联合行使,不然使用该实用工具不供给领会 Transact-SQL
知识。 若要将数据导入表中,必须接纳为该表创建的格式文件,只怕必须了除热的布局以及对于该表中的列有效的数据类型。

BCP的具有参数:

SQL Server 1

 

BCP能够进行的4种操作

(1) 导入 这些动作使用in命令完成,前面跟必要导入的文件名。 (2)
导出
这些动作使用out命令完结,后边跟须求导出的文件名。 (3)
使用SQL语句导出

那么些动作使用queryout命令完结,它跟out类似,只是数据源不是表或视图名,而是SQL语句。
(4) 导出格式文件 这么些动作使用format命令完毕,后而跟格式文件名。

常用操作:

  1. BCP 可相信任连接到地点表导出:

SQL Server 2

用windows认证登陆并把text.dbo.name的表导出到D盘的 t_001.txt

  1. BCP 可靠任连接到导出查询

SQL Server 3

  1. BCP 可靠任连接连到远程服务器导出查询

SQL Server 4

也足以采取上面包车型地铁T-SQL命令:

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 联机丛书中的 “外围应用配置器”。

其一时半刻候供给我们来开启 :

SQL Server 5😉

-- 允许配置高级选项  
EXEC master.sys.sp_configure 'show advanced options', 1  
-- 重新配置  
RECONFIGURE  
-- 启用xp_cmdshell  
EXEC master.sys.sp_configure 'xp_cmdshell', 1  
--重新配置  
RECONFIGURE  

SQL Server 6😉

用完未来再把其关闭,关闭只须求把 1 变为 0 即可。
上边的话语也足以因而输入用户名和密码的方式出来,如下例句:

EXEC master..xp_cmdshell 'BCP  test.dbo.name out d:\t_008.txt -c -t  -U"sa" -P"ssssaaaa"'
  1. 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 内定字符分割符,暗中同意是”\SQL Server,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值插入,而不是那列的默许值。

 

相关文章