复制数据--bulk insert语句和bcp实用工具

原创 2007年10月08日 13:34:00

bulk insert语句和bcp实用工具用于在SQL SERVER 数据库和数据文件之间复制数据.

(ps:关于导入和导出数据的更多使用方法,可以参考《sql server联机丛书》的 “管理 SQL Server ”-->“导入和导出数据”章节)

1)bulk insert语句

bulk insert以用户指定的格式复制一个数据文件至数据库表或视图中。

下面的例子会将authors.txt的内容导入数据库表中pubs..authors:

BULK INSERT pubs..authors FROM 'd:/tmp/authors.txt'
WITH (
   DATAFILETYPE = 'char',
   FIELDTERMINATOR = ',',
   TABLOCK
)

其中,假设authors.txt文件含有以下内容:

1,lauthor1, fauthor1,,address1,city1,CA,10002,1
2,lauthor2, fauthor2,,address2,city1,CA,10002,0
3,lauthor3, fauthor3,,address3,city1,CA,10002,1
4,lauthor4, fauthor4,,address4,city1,CA,10002,1
5,lauthor5, fauthor5,,address5,city1,CA,10002,1

......

2)bcp工具

bcp 实用工具在 Microsoft® SQL Server™ 2000 实例和数据文件之间以用户指定的格式复制数据。

2.1)从数据文件复制数据到指定的数据库表中

若要将数据从 Newpubs.dat 大容量复制到 publishers2,可以使用以下命令:

bcp pubs..publishers2 in newpubs.dat -c -t , -r /n -Sservername -Usa -Ppassword

其中Newpubs.dat 文件为:

1111,Stone Age Books,Boston,MA,USA
2222   ,Harley & Davidson,Washington,DC,USA
3333   ,Infodata Algosystems,Berkeley,CA,USA

2.2)从数据库复制数据到指定的文件

例如,Northwind 数据库内有表 Jane's Orders,该表由用户 Jane Doe 所拥有。若要使用登录 Jane Doe 和密码 go dba 将该表从 Northwind 数据库大容量复制到 Orders.txt 文件,请执行下列命令之一:

bcp "Northwind.Jane Doe.Jane's Orders" out "Jane's Orders.txt" -c -q -U"Jane Doe" -P"go dba"

bcp "Northwind.[Jane Doe].[Jane's Orders]" out "Jane's Orders.txt" -c -U"Jane Doe" -P"go dba"

 2.3)将数据从查询复制到数据文件


bcp 实用工具使您得以将 Transact-SQL 语句的结果集复制到数据文件中。该 Transact-SQL 语句可以是任何可返回结果集的有效语句,例如分布式查询或联接多个表的 SELECT 语句。例如

bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout Authors.txt -c -Sservername -Usa -Ppassword

 

bulk insert语句与bcp

bulk insert以用户指定的格式复制一个数据文件至数据库表中下面的例子会将authors.txt的内容导入数据库表中pubs..authors:BULK INSERT vastar..star ...
  • ivan__zhang
  • ivan__zhang
  • 2007年12月08日 00:47
  • 373

[SQL Server]2008版本的bcp,bulk insert命令不支持UTF8文件.2005版支持.

SQL Server 2008版本的bcp,bulk insert命令不支持UTF8文件.2005版支持.SQL Server 2008最新的联机帮助中有指出不支持utf-8:http://techn...
  • xiaoxu0123
  • xiaoxu0123
  • 2011年03月01日 16:38
  • 3631

SQL Server大容量复制实用工具bcp下载安装及使用

1.下载安装 SQL Server2008点击这里,SQL Server2016点击这里 2.使用说明 2.1导出全表 2.2用语句导出 2.3文件导入 2.4存储过程 参考文...
  • tiantuanzi
  • tiantuanzi
  • 2017年10月24日 17:49
  • 503

BULK INSERT如何将大量数据高效地导入SQL Server

在实际的工作需要中,我们有时候需将大量的数据导入到数据库中。这时候我们不得不考虑的就是效率问题。本文我们就介绍了一种将大量数据高效地导入SQL Server数据库的方法,该方法是使用BULK INSE...
  • smartsmile2012
  • smartsmile2012
  • 2014年03月27日 16:34
  • 2255

SQL Server Bulk Insert 批量数据导入

SQL Server的Bulk Insert语句可以将本地或远程的数据文件批量导入到数据库中,速度非常的快。远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP\共享名\...
  • jiachangbin1989
  • jiachangbin1989
  • 2016年10月25日 15:04
  • 2564

什么是BULK INSERT

BULK INSERT   在SQL Server中,BULK INSERT是用来将外部文件以一种特定的格式加载到数据库表的T-SQL命令。该命令使开发人员能够直接将数据加载到数据库表中,而不需要使...
  • summerhust
  • summerhust
  • 2011年10月15日 22:56
  • 858

BCP和BULK INSERT比较

经过比较bulk insert 效率更高 BCP运行的SQL: insert bulk test.[dbo].tb1([ContractNumber] varchar(20) collat...
  • qq_16629653
  • qq_16629653
  • 2015年01月30日 15:48
  • 294

bcp、BULK INSERT 和 OPENROWSET(BULK)

bcp(大容量复制程序)实用工具BULK INSERT 以用户指定的格式将数据文件加载至数据库表或视图中。OPENROWSET 大容量行集提供程序goif exists (select * from ...
  • sage425
  • sage425
  • 2010年11月17日 14:33
  • 1661

行终止符导致的bulk insert 失败

在论坛中回答了一个问题,导入csv 数据,并对导入的数据增加一个新的列date datetime。要求在10s内完成,200w行数据的导入.分享下解决问题的思路和方法...
  • z10843087
  • z10843087
  • 2017年07月24日 09:05
  • 566

bulk insert 和 insert bulk的区别

网上大部分介绍的都是bulk insert , 只能从物理文件中导入, insert bulk要通过编程去导入, 没法直接通过sql实现, c#的SqlBulkCopy就是用这种方法来实现的....
  • shixueli
  • shixueli
  • 2015年06月01日 11:09
  • 2787
收藏助手
不良信息举报
您举报文章:复制数据--bulk insert语句和bcp实用工具
举报原因:
原因补充:

(最多只允许输入30个字)