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

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

bcp 实用工具可以于 Microsoft SQL Server
实例和用户指定格式的数据文件间颇容量复制数据。  使用
bcp 实用工具可以以大气初行导入 SQL Server
表,或用表数据导出至数据文件。 除非与
queryout 选项共行使,否则用该实用工具不待了解 Transact-SQL
知识。 若要以数据导入表中,必须使也该表创建的格式文件,或者必须了解表的结构和对此该表中之排有效之数据类型。

BCP的持有参数:

图片 1

 

BCP可以实行之4种操作

(1) 导入 这个动作下in命令就,后面与得导入的文本称。 (2)
导出
这个动作下out命令完成,后面和用导出的公文称。 (3)
使用SQL语句导出

这个动作下queryout命令完成,它跟out类似,只是数据源不是说明或看图名,而是SQL语句。
(4) 导出格式文件 这个动作下format命令完成,后而和格式文件名。

常用操作:

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

图片 2

因而windows认证登陆并把text.dbo.name的表导出至D盘的 t_001.txt

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

图片 3

  1. BCP 可信任连接连到长途服务器导出查询

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

斯时要我们来开启 :

图片 5😉

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

图片 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 指定字符分割符,默认是”\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值插入,而休是这排的默认值。

 

相关文章