设为首页 收藏本站
查看: 1093|回复: 0

[经验分享] SQL Server BCP使用小结

[复制链接]

尚未签到

发表于 2018-10-14 07:24:42 | 显示全部楼层 |阅读模式
  转自:http://www.cnblogs.com/zc_0101/articles/1807291.html
  用法: 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 格式化文件]
  --不利用格式化文件的导入导出(以下示例皆省略了-S参数,因为是在本机,又是默认实例)
  --简单导出表
  exec master..xp_cmdshell 'bcp db_oa.dbo.T_User_list  out c:\a.xls -c -T'    --"-T"信任连接
  exec master..xp_cmdshell 'bcp db_oa.dbo.T_User_list  out c:\a.txt -c -Usa -Pxxxxx'
  --过滤导出表
  exec master..xp_cmdshell 'bcp "select top 3 * from db_oa.dbo.t_user_list"  queryout c:\a.txt -c -T'
  --简单导入表
  exec master..xp_cmdshell 'bcp db_oa.dbo.T_User_list_2  in c:\a.txt -c -T'
  exec master..xp_cmdshell 'bcp db_oa.dbo.T_User_list_2  in c:\a.txt -c -T -E'    --加上"-E"启用identity_insert on
  --下面是利用XML格式化文件进行数据的导入!
  --创建测试表
  USE db_oa;
  GO
  CREATE TABLE myTestFormatFiles (
  Col1 smallint,
  Col2 nvarchar(50),
  Col3 nvarchar(50),
  Col4 nvarchar(50)
  );
  GO
  --输出XML格式化文件
  --说明一下:-t","是指定字段分隔符,稍后我们会讲到
  exec master..xp_cmdshell 'bcp db_oa..MyTestFormatFiles format nul -c -t"," -x -f c:\myTestFormatFiles.Xml -T'
  /*
  格式化后的文件内容如下:
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  这里我们对文件关键字稍作解释:
  父节点中的内容是对源文件的格式化定义,即你要导入的数据文件
  
  不难看出,我们最常修改的就是TERMINATOR,可以修改为"|"等你需要的分隔符,注意最后一个字段的分隔符为"\r\n"
  
  该父节点的内容是目标数据的格式化定义,即你需要导入数据文件的地方
  
  
  */
  --下面我们创建源数据文件,将以下内容粘贴到我们指定的数据文件C:\myTestFormatFiles-c.txt中
  /*
  10,Field2,Field3,Field4
  15,Field2,Field3,Field4
  46,Field2,Field3,Field4
  58,Field2,Field3,Field4
  */
  --利用bcp格式化文件导入数据
  exec master..xp_cmdshell 'bcp db_oa..myTestFormatFiles in C:\myTestFormatFiles-c.txt -f C:\myTestFormatFiles.Xml -T'
  --查看一下导入的数据
  select * from myTestFormatFiles
  /*
  Col1    Col2    Col3    Col4
  10    Field2    Field3    Field4
  15    Field2    Field3    Field4
  46    Field2    Field3    Field4
  58    Field2    Field3    Field4
  */
  --使用BULK INSERT导入数据
  USE db_oa;
  GO
  DELETE myTestFormatFiles;
  GO
  BULK INSERT myTestFormatFiles
  FROM 'C:\myTestFormatFiles-c.txt'
  WITH (FORMATFILE = 'C:\myTestFormatFiles.Xml');
  GO
  SELECT * FROM myTestFormatFiles;
  GO
  /*
  Col1    Col2    Col3    Col4
  10    Field2    Field3    Field4
  15    Field2    Field3    Field4
  46    Field2    Field3    Field4
  58    Field2    Field3    Field4
  */
  --使用OPENROWSET 大容量行集提供程序导入
  USE db_oa;
  DELETE myTestFormatFiles;
  GO
  INSERT INTO myTestFormatFiles
  SELECT *
  FROM  OPENROWSET(BULK  'C:\myTestFormatFiles-c.txt',
  FORMATFILE='C:\myTestFormatFiles.Xml'
  ) as t1 ;
  GO
  SELECT * FROM myTestFormatFiles;
  GO
  /*
  Col1    Col2    Col3    Col4
  10    Field2    Field3    Field4
  15    Field2    Field3    Field4
  46    Field2    Field3    Field4
  58    Field2    Field3    Field4
  */
  --删除测试表
  DROP TABLE myTestFormatFiles


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-621279-1-1.html 上篇帖子: SQL Server编年史 下篇帖子: Replicate Function In SQL Server 2008-Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表