现在的位置: 首页 > 综合 > 正文

用BCP从SQL Server中导出txt文本

2013年03月06日 ⁄ 综合 ⁄ 共 1368字 ⁄ 字号 评论关闭

BCP是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据。

/********************************************************

例如:

从本地服务器中(有用户名和密码)导出txt文本

EXEC master..xp_cmdshell 'bcp "select * from pubs..authors" queryout "c:/DT.txt" -c -S"(local)" -U"sa" -P"1"'

不是在本机器的

EXEC master..xp_cmdshell 'bcp "pubs..authors" out "c:/test.txt" -c -S"127.0.0.1" -U"sa" -P"1" '

没有用户名和密码,

EXEC master..xp_cmdshell 'bcp "select * from pubs..authors" queryout "c:/DT.txt" -c -S"(local)" -t'

**********************************************************/

BCP共有四个动作可以选择。
(1) 导入。
这个动作使用in命令完成,后面跟需要导入的文件名。
(2) 导出。
这个动作使用out命令完成,后面跟需要导出的文件名。
(3) 使用SQL语句导出。
这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。
(4) 导出格式文件。
这个动作使用format命令完成,后而跟格式文件名。

 

常用的选项:

-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值插入,而不是这列的默认值。

//*******************************************************

每天定时导出:数据库管理--》新建作业

 

抱歉!评论已关闭.