SQL Server BCP 导入导出使用
来源:互联网 发布:淘宝兔妈美国代购真假 编辑:程序博客网 时间:2024/05/23 00:21
SQL Server BCP 导入导出使用
Bcp 导出导入数据高效,比使用SQL Server Management Stdio 提供的数据库导出导入要高效因为sql server 也没有提供提供类似oracle的expdp和impdp的工具,如果用SQL Server Management Stdio提供的导入导出对大表数据进行迁移速度太慢了
Bcp 导出数据高效比较适用于大表数据的迁移
进入doc命令行输入bcp命令,就弹出bcp命令的帮助信息:
C:\Users\wangwei>bcp
用法: bcp {dbtable | query} {in | out | queryout | format} 数据文件
[-m 最大错误数] [-f 格式化文件] [-e 错误文件]
[-F 首行] [-L 末行] [-b 批大小]
[-n 本机类型] [-c 字符类型] [-w 宽字符类型]
[-N 将非文本保持为本机类型] [-V 文件格式版本] [-q 带引号的标识符]
[-C 代码页说明符] [-t 字段终止符] [-r 行终止符]
[-i 输入文件] [-o 输出文件] [-a 数据包大小]
[-S 服务器名称] [-U 用户名] [-P 密码]
[-T 可信连接] [-v 版本] [-R 允许使用区域设置]
[-k 保留 Null 值] [-E 保留标识值]
[-h"加载提示"] [-x 生成 xml 格式化文件]
参数介绍:
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值插入,而不是这列的默认值。
使用bcp导出数据
在控制台执行bcp:
bcp db_name.dbo.T_tablename out c:\a.txt -c -T
bcp db_name.dbo.T_tablename out c:\a.txt -c -Uusername -Pxxxxx
通过调用SQL Server的一个系统存储过程xp_cmdshell以SQL语句的方式运行bcp:
exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename out c:\a.txt -c -T' --"-T"信任连接
exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename out c:\a.txt -c -Usa -Pxxxxx'
说明:
-T指定 bcp 使用网络用户的安全凭据,通过信任连接连接到 SQL Server。不需要 login_id 和 password。
如果不是使用T需要加上-U和-P参数输入用户名和密码
如果是本地导入导出可以不加-S参数,如果连接到远程服务需要加-S参数
bcp db_name.dbo.tablename out d:\table.txt -c -q -S"120.26.76.220,1833" -U"sa" -P"password"
对要导出的表进行过滤。
bcp不仅可以接受表名或视图名做为参数,也可以接受SQL做为参数,通过SQL语句可以对要导出的表进行过滤,然后导出过滤后的记录。
EXEC master..xp_cmdshell 'bcp "SELECT TOP 20 * FROM db_name.dbo.T_tablename" queryout c:\table2.txt -c -U"sa" -P"password"'
bcp还可以通过简单地设置选项对导出的行进行限制。
这条命令使用了两个参数-F 2和-L 16,表示从SE
EXEC master..xp_cmdshell 'bcp "SELECT TOP 20 * FROM db_name.dbo.T_tablename" queryout c:\currency2.txt -F 2 -L 16 -c -U"sa" -P"password"'
SELECT TOP 20 * FROM db_name.dbo.T_tablename所查出来的结果中取第2条到16条记录进行导出。
使用bcp导入数据
bcp可以通过in命令将bcp导出的文件导入到表中,首先需要创建表结构和导出数据的表结构相同
在控制台执行bcp:
bcp db_name.dbo.T_tablename in c:\a.txt-c -T
bcp db_name.dbo.T_tablename in c:\a.txt -c -Uusername -Pxxxxx
通过调用SQL Server的一个系统存储过程xp_cmdshell以SQL语句的方式运行bcp:
exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename in c:\a.txt-c -T' --"-T"信任连接
exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename in c:\a.txt -c -Usa -Pxxxxx'
- SQL Server使用bcp导入导出
- sql server 使用bcp 导入导出数据
- SQL Server BCP 导入导出使用
- SQL server 数据导入导出BCP工具使用详解
- SQL server 数据导入导出BCP工具使用详解
- sql server 的 bcp 导入导出
- sql server的BCP导入导出
- sql server的BCP导入导出
- sql server数据库导入导出bcp方法
- sql 使用bcp进行导入导出数据
- SQL Server 使用BCP导出数据
- SQL Server数据导入导出工具BCP详解
- SQL Server数据导入导出工具BCP详解
- SQL Server数据导入导出工具BCP详解
- SQL Server数据导入导出工具BCP详解
- SQL Server数据导入导出工具BCP详解
- SQL Server数据导入导出工具BCP详解
- SQL Server数据导入导出工具BCP详解
- 学习方法来自对学习风格的探索
- 关于拦截器的使用的方法
- 【已解决】Android Studio导入GitHub上的项目常见问题
- android底层开发进阶(1)-默认设置项的修改
- c++的知识点
- SQL Server BCP 导入导出使用
- Android Studio系列教程四--Gradle基础
- ubuntu11.04 安装低版本gcc 和g++(本文介绍了4.4版和3.4版的安装方法)
- 关于checked全选与反选问题
- 创建型模式之原型模式(创建工作周报)
- 最小生成树的prim算法
- Android启动过程深入解析
- DatePicker、TimePicker基本用法
- php利用header导出.doc或者.xls文件