mysql navicat导入bcp_SQL Server数据导入导出工具BCP详解

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

BCP是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据。BCP可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出。在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中。

下面将详细讨论如何利用BCP导入导出数据。

1. BCP的主要参数介绍BCP共有四个动作可以选择。(1) 导入。这个动作使用in命令完成,后面跟需要导入的文件名。(2) 导出。这个动作使用out命令完成,后面跟需要导出的文件名。(3) 使用SQL语句导出。这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。(4) 导出格式文件。这个动作使用format命令完成,后而跟格式文件名。下面介绍一些常用的选项:-f format_fileformat_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值插入,而不是这列的默认值。--不利用格式化文件的导入导出(以下示例皆省略了-S参数,因为是在本机,又是默认实例)--简单导出表execmaster..xp_cmdshell'bcp db_oa.dbo.T_User_list  out c:\a.xls -c -T'--"-T"信任连接execmaster..xp_cmdshell'bcp db_oa.dbo.T_User_list  out c:\a.txt -c -Usa -Pxxxxx'--过滤导出表execmaster..xp_cmdshell'bcp "select top 3 * from db_oa.dbo.t_user_list"  queryout c:\a.txt -c -T'--简单导入表execmaster..xp_cmdshell'bcp db_oa.dbo.T_User_list_2  in c:\a.txt -c -T'execmaster..xp_cmdshell'bcp db_oa.dbo.T_User_list_2  in c:\a.txt -c -T -E'--加上"-E"启用identity_insert on

2. 如何使用BCP导出数据

(1) 使用BCP导出整个表或视图

EXEC master..xp_cmdshell 'bcp "SELECT  * from bigfootmis.dbo.员工"            queryout d:\sqldata\abc.txt  -S.\sqlserver2005  -c -T -U "sa" -P "yjsoft"'

总结BCP命令是SQL Server提供的一个快捷的数据导入导出工具。使用它不需要启动任何图形管理工具就能以高效的方式导入导出数据。当然,它也可以通过xp_cmdshell在SQL语句中执行,通过这种方式可以将其放到客户端程序中(如delphi、c#等)运行,这也是使客户端程序具有数据导入导出功能的方法之一。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值