SQL Server的导出导入方式有:

  1. 在SQL Server中提供了导入导出的界面操作。
  2. 在界面操作中又分【复制一个或多个表或视图的数据】和【编写查询以指定要传输的数据】两种模式,第一种是直接对表、视图进行全部字段、记录进行导出,而第二种就是可以通过SQL语句来控制导出导入的字段和行。
  3. 使用 简单但有用的SQL脚本 中的【表复制】这里面的方法。
  4. 再一种就是在命令行中使用bcp命令来导入导出数据,需要特别说明的是,这是对大数据量导入导出就好的办法。

    --整个表导出(out)
    bcp 数据库名.dbo.表名 out c:\currency.txt -S"数据库实例" -U"用户" -P"密码" -c

    --使用SQL语句导出(queryout)
    bcp "select * from 数据库名.dbo.表名" queryout c:\currency.txt -S 数据库实例 -U"用户" -P"密码" -c

    --设置字段分隔符和行分隔符(-c -t"," -r"\n"),不想输入字段类型等请配合-c一起使用
     bcp "select * from 数据库名.dbo.表名" queryout c:\currency.txt -S 数据库实例 -U"用户" -P"密码" -c -t"," -r"\n"

    --指定每批导入数据的行数、指定服务器发出或接收的每个网络数据包的字节数(-k -b5000 -a65535)
     bcp "select * from 数据库名.dbo.表名" queryout c:\currency.txt -S 数据库实例 -U"用户" -P"密码" -c -t"," -r"\n" -k -b5000 -a65535

    --在查询分析器上执行(EXEC master..xp_cmdshell)
    EXEC master..xp_cmdshell 'bcp "select * from 数据库名.dbo.表名" queryout c:\currency.txt -S 数据库实例 -U"用户" -P"密码" -c'

    --把SQL语句生成一个.sql文件,然后调用
    --注:路径的文件夹名称中间不能有空格
    exec master..xp_cmdshell 'osql -S 数据库实例 -U 用户 -P 密码 -i    C:\cmdshellTest.sql'

    --将数据导入到currency表中
    EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 in c:\currency.txt -c -T'
    --导入数据也同样可以使用-F和-L选项来选择导入数据的记录行。
    EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 in c:\currency.txt -c -F 10 -L 13 -T'

在使用命令xp_cmdshell的时候需要设置权限:

/*MSsql2005 如何启用xp_cmdshell
默认情况下,sql server2005安装完后,xp_cmdshell是禁用的(可能是安全考虑),如果要使用它,可按以下步骤
*/
-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO

--执行想要的xp_cmdshell语句
Exec xp_cmdshell 'query user'
GO

--用完后,要记得将xp_cmdshell禁用(出于安全考虑)
-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 禁用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
--重新配置
RECONFIGURE
GO

 
或者使用图形界面:
遇见的错误:

1、发生以下错误:
[Error][Microsoft][Native]Error = [Microsoft][SQL Native Client]无法打开 BCP 主数据文件

使用如下命令:
EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%'
返回 :NT AUTHORITY\NETWORK SERVICE

然后在配置管理器(configuration manager)里面的SQL server2005服务里打开,看到登陆内置账号为Network service,
改成local system问题解决。

2、SQLState = 22018, NativeError = 0
Error = [Microsoft][SQL Native Client]对于造型说明无效的字符值
如果是表与表之间的数据导入,可用 -N, 或者 -w, 而不要用 -c
用-c的话, 如果导出的某个列中的数据中包含分隔符, 则会导致你 bcp 导入的时候失败
-N 或者 -w 不会有这个问题 
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 保留空值]                  [-E 保留标识值]
  [-h"加载提示"]                 [-x 生成 xml 格式化文件]
其它:
新建查询->输入SQL查询语句,执行得到需要的结果,在查询结果栏点击鼠标右键->将结果另存为
导出文件(*csv)即可导出为 逗号分割的excel文件。
此时,由于没有分列,所以应先新建一个空白的Excel文档,然后选择打开刚才保存的的文件;
然后它会出现文本导入步骤,选中分割符号,下一步,选中 逗号,预览区域正常,然后在下一步和完成,保存为excel文件

SQL2005 BCP相关推荐

  1. Excel与Sql Server互通导入导出跨语言

    目录 Excel与Sql Server互通导入导出跨语言 1.目标Excel缺少表的列标题字段 1.1.问题的提出从这里开始 1.2.参数的正确写法 1.3.附带说一下Jet 4.0 1.4.附带说一 ...

  2. 关于bcp的那些事儿

    存储过程 ado.net 递归二叉树关于bcp的那些事儿sql2005环境下cmd-> bcp 库名.dbo.表名 out e:\2.txt -c -k -S "服务器地址/ip&qu ...

  3. BCP导出导入大容量数据实践

    前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储过程,生成所需的数据文件,甚至可以生成包含SQL语句和数据的脚本文 件.各有优缺点,以适用不同的需求.下面介绍 ...

  4. mysql navicat导入bcp_SQL Server中BCP导入导出用法详解

    bcp命令是SQL Server提供的一个快捷的数据导入导出工具.使用它不需要启动任何图形管理工具就能以高效的方式导入导出数据.bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于 ...

  5. 三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQL2005版本)

    三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 转载原文,并注明出处!虽无多少技术含量,毕竟是作者心血原创,希望理解. 转自 http://blog.csdn.net ...

  6. TFS2008 + Windows2003 + Sql2005 安装注意事项

    TFS2008并不是一个很容易安装的软件,很多时候能否顺利安装成功跟人品有关(笑),要想一次安装成功,强烈建议准备一个全新的干净系统. 1.系统   最好采用刚安装好的windows2003,注意要打 ...

  7. 使用 bcp 指定数据文件中的前缀长度

    当以本机格式将数据大容量导出到数据文件时,为使文件存储空间最为紧凑,bcp 命令将在每个字段前面使用一个或多个字符来指示字段的长度. 这些字符称为"长度前缀字符". bcp 的前缀 ...

  8. SQL2005的安装与 使用

    安装 SQL2005有这两个文件SQLEXPR32_CHS.EXE和SQLServer2005_SSMSEE先装谁 第一个SQLEXPR32_CHS.EXE, 第二个SQLServer2005_SSM ...

  9. VS2005+SQL2005 ASP.NET2.0数据库连接

                                              VS2005+SQL2005 ASP.NET2.0数据库连接 对于的新手来说,整个数据库连接不太容易,根据连接过程中 ...

最新文章

  1. linux c实现函数回调,c语言实现linux抓包
  2. iOS隐藏导航栏的方法
  3. 条件语句,while循环语句:完整的温度转换程序
  4. Spring 3 MVC and JSR303 @Valid example
  5. Linux查看和控制进程
  6. 基于java洗浴中心管理系统_Java小白也能听懂的线程池的内部原理:老王的洗浴中心...
  7. 设计模式学习之单例模式
  8. Spring cloud学习总结
  9. 如何利用 MySQL 攻破数据库性能瓶颈?
  10. 按顺序取html中多个输入框的值,JS获得多个同name的input输入框的值的实现方法
  11. python小白的word转excel
  12. 笔记本ubuntu,deepin,linux系统共享WIFI
  13. DeepFool对抗算法_学习笔记
  14. 撰写SCI论文好用的免费工具(上) - 易智编译EaseEditing
  15. 输入关键字生成对联_百度“智能春联”玩出新年味 输入关键词秒出春联
  16. 爬虫(七)通过Selenium爬取网易云音乐评论
  17. 微信小程序 | 模仿百思不得其姐
  18. 流失用户召回方法策略,教你如何挽回流失用户
  19. 今天看生财英文工具站航海中阿彪的分享,里面有几点可以分享下
  20. 和Ajax斗志斗勇的日子

热门文章

  1. axios post body参数_Vue开发中的一些问题(axios封装)
  2. 联想g400从u盘启动计算机,联想g400u盘装系统的方法
  3. gh ost mysql_MySQL在线DDL gh-ost 使用说明
  4. 那些学校计算机招不满,那些招不满人的985院校,请留意!
  5. C语言打印等腰三角形
  6. deploy java eclipse_使用eclipse的mvn deploy部署本地包到maven私有库
  7. Ubuntu 16.04安装Zabbix 3.2 版本
  8. AD回收站功能的使用
  9. AngularJS中选择样式
  10. master线程的主循环,后台循环,刷新循环,暂停循环