sqlserver bcp(数据导入导出工具State of Qatar日常用法与命令安详严整

sqlserver bcp(数据导入导出工具State of Qatar日常用法与命令安详严整

宗旨提醒:bcp 实用工具在 Microsoftreg; SQL Server#8482; 贰零零叁实例和数据文件之间以客户钦赐的格式复数据

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_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 田野_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值插入,并非那列的暗许值。 2. 怎么着采用bcp导出多少
(1卡塔尔国 使用bcp导出任何表或视图。 bcp AdventureWorks.sales.currency out
c:\currency1.txt -c -U”sa” -P”password” –使用密码连接或bcp
AdventureWorks.sales.currency out c:\currency1.txt -c -T –接收信任连接
下边是上述命令实践后的输出结果 Starting copy… 105 rows copied. Network
packet size (bytes卡塔尔: 4096 Clock Time (ms.卡塔尔 Total : 10 Average :
(10500.00 rows per sec.卡塔尔 下边是currency1.txt的某个剧情 AED 埃Millati
Dirham 一九九九-06-01 00:00:00.000 AFA Afghani 1999-06-01 00:00:00.000 …
… … … … … ZWD Zimbabwe Dollar 1999-06-01 00:00:00.000
在行使密码登陆时供给将-U后的顾客名和-P后的密码加上双引号。
注:bcp除了能够在调节台实践外,还是可以透过调用SQL
Server的二个连串存款和储蓄进程xp_cmdshell以SQL语句的点子运营bcp。如上述第一条命令可改写为
EXEC master..xp_cmdshell ‘bcp AdventureWorks.sales.currency out
c:\currency1.txt -c -U”sa” -P”password”‘
执行xp_cmdshell后,重临音信以表的款型出口。为了能够一本万利地在SQL中推行bcp,下边包车型客车下令都施用xp_cmdshell实践bcp命令。
(2卡塔尔 对要导出的表进行过滤。
bcp不仅可以够承当表名或视图名做为参数,也足以承担SQL做为参数。通过SQL语句能够对要导出的表张开过滤,然后导出过滤后的记录。
EXEC master..xp_cmdshell ‘bcp “SELECT TOP 20 * FROM
AdventureWorks.sales.currency” queryout c:\currency2.txt -c -U”sa”
-P”password”‘ bcp还足以通过简单地安装选项对导出的行开展约束。
这条命令使用了两个参数-F 10和-L 13,表示从SE EXEC master..xp_cmdshell
‘bcp “SELECT TOP 20 * FROM AdventureWorks.sales.currency” queryout
c:\currency2.txt -F 10 -L 13 -c -U”sa” -P”password”‘ LECT TOP 20 *
FROM
AdventureWorks.sales.currency所查出来的结果中取第10条到13条记下举办导出。3.
什么样使用bcp导出格式文件

bcp不仅能够遵照表、视图导入导出多少,还是可以包容格式文件对导入导出数据开展约束。格式文件以纯文本文件情势存在,分为经常格式和xml格式。顾客能够手工编写制定格式文件,也足以通过bcp命令依据表、视图自动生成格式文件。
EXEC master..xp_cmdshell ‘bcp AdventureWorks.sales.currency format nul
-f c:\currency_format1.fmt -c -T’
上述命令将currency表的布局转换了四个格式文件currency_format1.fmt,上边是以此格式文件的内容。
9.0 3 1 SQLCHASportage 0 6 “\t” 1 CurrencyCode
SQL_Latin1_General_CP1_CI_AS 2 SQLCHAR 0 100 “\t” 2 Name
SQL_Latin1_General_CP1_CI_AS 3 SQLCHAR 0 24 “\r\n” 3 ModifiedDate
那么些格式文件记录了这些表的字段类型、长度、字符和行分割符和字段名等新闻。
bcp还足以因此-x选项生成xml格式的格式文件。 EXEC master..xp_cmdshell
‘bcp AdventureWorks.sales.currency format nul -f
c:\currency_format2.fmt -x -c -T’
xml格式文件所描述的内容和平常格式文件所描述的剧情完全等同,只是格式不相同。
4. 什么样行使bcp导入数据
bcp能够透过in命令将方面所导出的currency1.txt和currency2.txt再另行导入到数据库中,由于currency有主键,由此大家将复制三个和currency的结构一模一样的表。
SELECT TOP 0 * INTO AdventureWorks.sales.currency1 FROM
AdventureWorks.sales.currency 将数据导入到currency1表中 EXEC
master..xp_cmdshell ‘bcp AdventureWorks.sales.currency1 in
c:\currency1.txt -c -T’
导入数据也一成不改变能够使用-F和-L选项来选取导入数据的记录行。 EXEC
master..xp_cmdshell ‘bcp AdventureWorks.sales.currency1 in
c:\currency1.txt -c -F 10 -L 13 -T’
在导入数据时方可依照已经存在的格式文件将知足条件的记录导入到数据库中,不满意则不导入。如上述的格式文件中的第3个字段的字符长度是24,若是有些文本文件中的相应字段的长度抢先24,则那条记下将不被导入到数据库中,别的满意条件的笔录健康导入。
使用普通的格式文件 EXEC master..xp_cmdshell ‘bcp
AdventureWorks.sales.currency1 in c:\currency1.txt -F 10 -L 13 -c -f
c:\currency_format1.fmt -T’ 使用xml格式的格式文件 EXEC
master..xp_cmdshell ‘bcp AdventureWorks.sales.currency1 in
c:\currency1.txt -F 10 -L 13 -c -x -f c:\currency_format2.fmt -T’
总结 bcp命令是SQL
Server提供的八个快捷的数量导入导出工具。使用它无需运转任何图形管理工科具就能够以便捷的点子导入导出数据。当然,它也足以因此xp_cmdshell在SQL语句中推行,通过这种艺术能够将其放置客户端程序中运作,那也是使顾客端程序具备数据导入导出功能的措施之一。
bcp命令详细解释(sybaseState of Qatar bcp 实用工具在 Microsoft SQL Server 2002实例和数据文件之间以顾客内定的格式复制数据。 语法 bcp
{[[database_name.][owner].]{table_name | view_name} | “query”}
{in | out | queryout | format} data_file [-m max_errors] [-f
format_file] [-e err_file] [-F first_row] [-L last_row] [-b
batch_size] [-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
[-q] [-C code_page] [-t field_term] [-r row_term] [-i
input_file] [-o output_file] [-a packet_size] [-S
server_name[\instance_name]] [-U login_id] [-P password]
[-T] [-v] [-R] [-k] [-E] [-h “hint [,…n]”] 参数
database_name
钦点的表或视图所在数据库的称谓。如若未钦点,则为客商私下认可数据库。 owner
表或视图全部者的名号。如果试行大容积复制操作的客商具有钦定的表或视图,则
owner 是可选的。若无一点点名 owner
何况实践大体量复制操作的顾客不辜负有钦赐的表或视图,则 Microsoft? SQL
Server? 二零零四 将赶回错误消息并收回大容量复制操作。 table_name
是将数据复制到 SQL Server 时 (inState of Qatar 的指标表名,以至从 SQL Server
复制数据时 (outState of Qatar 的源表名。 view_name 是将数据复制到 SQL Server 时 (in)的目标视图名,以致从 SQL Server 复制数据时 (out卡塔尔国的源视图名。独有中间具备列都援引同一个表的视图技艺用作指标视图。有关将数据复制到视图的限量的越来越多消息,请参见
INSERT。 Query 是回到三个结实集的 Transact-SQL
查询。借使查询再次回到多少个结果集,比如钦命 COMPUTE 子句的 SELECT
语句,唯有首先个结果集将复制到数据文件,随后的结果集被忽视。使用双引号引起查询语句,使用单引号引起查询语句中放到的别的内容。在从询问中山高校体量复制数据时,还非得钦点queryout。 in | out | queryout | format 钦命大体积复制的矛头。in
是从文件复制到数据库表或视图,out
是指从数额库表或视图复制到文件。独有从询问中大体积复制数据时,才必得内定queryout。依照钦定的选项以至表或视图分隔符,format
将制造二个格式文件。假使利用 format,则还必需钦定 -f 选项。 表达Microsoft SQL Server 6.5 中的 bcp 实用工具不扶助大体积复制到包罗sql_variant 或 bigint 数据类型的表。 data_file
大体积复制表或视图到磁盘时所用数据文件的完好路线。当将数据大体量复制到
SQL Server 时,此数据文件包括将复制到钦点表或视图的多寡。当从 SQL Server
大体积复制数据时,该数据文件富含从表或视图复制的数目。路线能够有 1 到
255 个字符。 -m max_errors
钦赐在大体积复制操作废除在此以前可能发生的错误的最大数据。bcp
无法复制的每一行都将被忽视并计为叁个荒诞。若无饱含该选拔,则默感觉10。 -f format_file
钦命格式文件的一体化路线,该格式文件包罗曾经在同一个表或视图上应用 bcp
时的积攒响应。当使用由 format
选项所开创的格式文件大体量复制入或复制出数据时,使用此选项。格式文件的创制是可选的。在提示多少个格式难点以往,bcp
将唤起是还是不是在格式文件中保留回答。暗许文件名称叫Bcp.fmt。大体积复制数据时,bcp
可援引三个格式文件,因而不用再度交互作用输入此前的回答。要是未接收此选项,也不曾点名
–n、-c、-w、-6 或 -N,则 bcp 将唤起输入格式音讯。 -e err_file
内定错误文件的总体路线,此错误文件用于存储 bcp
不恐怕从文件传输到数据库的具有行。来自 bcp
的错误音信将发送到客户职业站。纵然未选拔此选项,则不创建错误文件。 -F
first_row 内定要大体积复制的首先行的序数。默许值是
1,表示在钦赐数据文件的第一行。 -L last_row
钦赐要大容积复制的末段一行的序数。私下认可值是
0,表示钦命数据文件中的最终一行。 -b batch_size
钦赐所复制的每批数量中的行数。每种批管理作为二个事情复制至服务器。SQL
Server
提交或回滚种种批管理的工作。默许情状下,内定的数据文件中的全数数据都看作一堆复制。请不要与
-h “ROWS_PER_BATCH = bb” 选项联合使用。 -n
使用数据的本机数据类型试行大体积复制操作。此选项不提拔输入每一字段,它将动用本机值。
-c 使用字符数据类型实行大体量复制操作。此选项不升迁输入每一字段;它选用char 作为存款和储蓄类型,不带前缀,\t作为字段分隔符,\n作为行终止符。 -w
使用 Unicode 字符实施大容积复制操作。此选项不提醒输入每一字段;它使用
nchar 作为存款和储蓄类型,不带前缀,\t作为字段分隔符,\n作为行终止符。不能够在
SQL Server 6.5 版或更早版本中选择。 -N
对非字符数据应用数据的本机数据类型和对字符数据运用 Unicode
字符类型实施大体积复制操作。那是可代替 -w
选项的性质更加高的选项,其目标是选用数据文件将数据从多个 SQL Server
传输到另七个 SQL Server 中。它不提醒输入每一字段。在急需传输包括 ANSI
扩大字符的数额以至想选取本机形式的属性时,能够使用这一选项。不能够在 SQL
Server 6.5 版或更早版本中接受 -N 选项。 -V (60 | 65 | 70卡塔尔国 使用 SQL
Server 开始的一段时代版本中的数据类型试行大体积复制操作。此选项与字符 (-cState of Qatar 或本机
(-n卡塔尔国格式一齐利用。此选项并不升迁输入每一字段,它选择默许值。比方,若要将 SQL
Server 6.5 中的 bcp 实用工具所支撑的日子格式大容积复制到 SQL Server
2001,可利用 -V 65 参数。 首要 将数据从 SQL Server
大容积复制到数据文件时,就算钦定了 –V,bcp 实用工具也不会为其它 datetime
或 smalldatetime 数据生成 SQL Server 6.0 或 SQL Server 6.5
的日子格式。日期将一向以 ODBC 格式写入。此外,由于 SQL Server 6.5
版或更早版本不援助可为空的 bit 数据,因而 bit 列中的空值写为值 0。 -6
使用 SQL Server 6.0 或 SQL Server 6.5
数据类型试行大体积复制操作。仅为保持向后宽容性。改为运用 –V 选项。 -q 在
bcp 实用工具和 SQL Server 实例的接连中实行 SET QUOTED_IDENTIFIERS ON
语句。使用该选项钦赐包括空格或引号的数据库、全部者、表或视图的称谓。将由三片段构成的整整表名或视图名引在双引号
(” “卡塔尔国 中。 -C code_page
仅为保持向后宽容性。作为代表,请在格式文件或人机联作式 bcp
中为每一列内定三个排序法规名。
钦赐数据文件中的数据代码页。唯有当数码中带有字符值大于 127 或低于 32 的
char、varchar 或 text 列时,code_page 才有用。 代码页值 描述 ACP
ANSI/Microsoft Windows? (ISO 1252卡塔尔(قطر‎。 OEM
顾客程序使用的暗许代码页。假诺未内定 -C,则那是 bcp 使用的默许代码页。
RAW
不发出从四个代码页到另二个代码页的改造。因为不发生转移,所以那是最快的选项。
值 特定的代码页号码,举个例子 850。 -t 田野(field卡塔尔国_term
钦点字段终止符。私下认可的字段终止符是 \t。使用此参数替代私下认可字段终止符。
-r row_term 钦赐行终止符。暗许的行终止符是
\n。使用此参数取代暗中同意行终止符。 -i input_file
钦定响应文件的称号,使用人机联作形式实行大体积复制时,响应文件包含对每一字段命令提示难题的响应。
-o output_file 内定选择 bcp 输出的公文的名号。 -a packet_size
钦命发送到和发送自服务器的每一种互连网数据包的字节数。能够使用 SQL Server
公司微机设置服务器配置选项。可是,使用此选项能够单个地代表服务器配置选项。packet_size
能够设置为 4096 到 65535 字节,暗许值为 4096。
数据包大小的增添能够加强盛体量复制操作的品质。假设须要三个非常的大的数量包而得不到,则应用暗中同意设置。bcp
生成的属性总计展现出所接受数据包的大大小小。 -S
server_name[\instance_name] 钦定要三回九转到的 SQL Server 实例。钦命server_name 以一而再再而三该服务器上的 SQL Server 默许实例。指定server_name\instance_name 以一而再一而再再而三到该服务器上的 SQL Server 二〇〇二命名实例。假如未钦点服务器,则 bcp 连接到地头电脑上的 SQL Server
私下认可实例。从互联网上的长途Computer执行 bcp 时,供给此选项。 -U login_id
钦命用于连接到 SQL Server 的登入 ID。 -P password 钦命登入 ID
的密码。假诺未利用此选项,则 bcp
将唤起输入密码。如若不带密码将此选项用于命令提醒行末尾,则 bcp
将选取暗许密码 (NULL卡塔尔。 -T 钦赐 bcp
使用互联网客户的平安凭据,通过信赖连接连接到 SQL Server。无需 login_id
和 password。 -v 报告 bcp 实用工具的版本号和版权。 -Evoque钦点使用为顾客端Computer的区域设置定义的区域格式,将货币、日期和岁月数额大容积复制到
SQL Server 中。默许情形下,将会忽视区域设置。 -k
钦定在大体积复制操作中空驶列车应封存两个空值,并不是对插入的列授予暗中同意值。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 版本] [-Lacrosse 允许利用区域设置]
[-k 保留空值] [-E 保留标记值] [-h”加载提醒”] [-x 生成xml
格式化文件] 导入csv格式文件 Exec master..xp_cmdshell ‘bcp
“SSIS.dbo.tb2” in “E:\export.csv” -c -t”,” -r”\n” -T’ 导出成csv Exec
master..xp_cmdshell ‘bcp “SSIS.dbo.tb2” out “E:\test.csv” -c -t”,”
-r”\n” -T’ 将一定查询导出成私下认可格式 默许以制表符间距,”\n”换行 Exec
master..xp_cmdshell ‘bcp “select carbrand,longitude from ssis.dbo.tb2”
queryout “E:\test2.txt” -c -T’ 其余情况参谋: 启用xp_cmdshell EXEC
sp_configure ‘show advanced options’, 1 GO RECONFIGURE GO EXEC
sp_configure ‘xp_cmdshell’, 1 GO RECONFIGURE GO

copy from:

bcp 实用工具能够在 SQL Server
实例和客商钦赐格式的数据文件间大体量复制数据。使用 bcp
实用工具能够将大气新行导入 SQL Server 表,或将表数据导入数据文件。除非与
queryout 选项一齐利用,不然使用该实用工具没有须求精晓 Transact-SQL
知识。若要将数据导入表中,必需利用为该表创立的格式文件,或许必需了消肿的构造以致对于该表中的列有效的数据类型。

方法-:用BCP命令

bcp [database_name.] schema.{table_name | view_name | “query” {in
data_file | out data_file | queryout data_file | format nul}

bcp 全数参数:

bcp 实用工具

   [-a packet_size]
   [-b batch_size]
   [-c]
   [-C { ACP | OEM | RAW | code_page } ]
   [-d database_name]
   [-e err_file]
   [-E]
   [-f format_file]
   [-F first_row]
   [-h”hint [,…n]”] 
   [-i input_file]
   [-k]
   [-K application_intent]
   [-L last_row]
   [-m max_errors]
   [-n]
   [-N]
   [-o output_file]
   [-P password]
   [-q]
   [-r row_term]
   [-R]
   [-S [server_name[\instance_name]]
   [-t field_term]
   [-T]
   [-U login_id]
   [-v]
   [-V (80 | 90 | 100 )]
   [-w]
   [-x]
   /?
data_file 
数据文件的欧洲经济共同体路线。 将数据大体积导入 SQL Server
时,数据文件将包含要复制到钦赐的表或视图中的数据。 从 SQL Server
中山高校体量导出数据时,数据文件将包含从表或视图中复制的多少。 路径能够有 1
到 255 个字符。 数据文件最多可含蓄 263 – 1 行。

图片 1

bcp 实用工具在 Microsoftreg; SQL Server™ 2003实例和数据文件之间以客商钦赐的格式复数据。

database_name 
内定的表或视图所在数据库的名目。 假如未钦命,则运用客商的默许数据库。

bcp能够推行八种操作:

语法

也足以动用 d- 显式内定数据库名称。

(1) 导入 
本条动作使用in命令达成,前面跟要求导入的文书名。 
(2) 导出 
以此动作使用out命令完成,前边跟必要导出的文件名。 
(3卡塔尔国 使用SQL语句导出 
以此动作使用queryout命令完结,它跟out相近,只是数据源不是表或视图名,而是SQL语句。 
(4卡塔尔 导出格式文件 
其一动作使用format命令完结,后而跟格式文件名。

代码: bcp {[[database_name.][owner].]{table_name | view_name} |
query} {in | out | queryout | format} data_file [-m max_errors] [-f
format_file] [-e err_file] [-F first_row] [-L last_row] [-b
batch_size] [-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
[-q] [-C code_page] [-t field_term] [-r row_term] [-i
input_file] [-o output_file] [-a packet_size] [-S
server_name[instance_name]] [-U login_id] [-P password] [-T]
[-v] [-R] [-k] [-E] [-h hint [,…n]] 参数database_name

in data_file | outdata_file | queryoutdata_file | format nul 
内定大容积复制的可行性,具体如下:

常用参数:

钦点的表或视图所在数据库的称呼。固然未内定,则为客户默许数据库。

•in 从文件复制到数据库表或视图。

-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值插入,实际不是那列的暗中认可值。

owner

•out 从数额库表或视图复制到文件。 假如内定了现存文件,则该公文将被掩瞒。
提取数额时,请在意 bcp 实用工具将空字符串表示为 null,而将 null
字符串代表为空字符串。

bcp常用操作

表或视图全体者的名称。假若试行大体量复制操作的顾客全部钦命的表或视图,则
owner 是可选的。若无一点名 owner
而且施行大容积复制操作的客商不辜负有钦命的表或视图,则 Microsoftreg; SQL
Server™ 二零零一 将赶回错误音信并注销大容积复制操作。

•queryout 从询问中复制,仅当从询问大容积复制数据时才必需钦赐此选项。

--导出数据到tset1.txt,并指定本地数据库的用户名和密码
--这里需要注意:指定的数据库必须是完全限定名。
EXEC master..xp_cmdshell 'BCP "select * from testad.dbo.Test" queryout d:\tset1.txt -c -U"sa" -P"sasasa"'
--导出数据到tset2.xls,使用-T信任连接
--通过-F 10 -L 13 指定导出的起始行和结束行数
EXEC master..xp_cmdshell 'BCP "select * from testad.dbo.Test" queryout d:\test2.xls -c -F 10 -L 13 -T"'
--使用in语句来将数据导入到数据表EXEC master..xp_cmdshell 'BCP te.dbo.Test in D:\test2.xls -c -T'

table_name

•format 依照钦点的选用(-n、-c、-w 或
-N)以至表或视图的相间符创制格式化文件。 大容积复制数据时,bcp
命令能够引用三个格式化文件,从而防止以交互作用格局重复输入格式新闻。 format
选项供给内定 -f 选项;创造 XML 格式化文件时还须求钦赐 -x 选项。
有关详细消息,请参阅创造格式化文件 (SQL Server卡塔尔国。 您必需钦点 nul 作为值
(format nul卡塔尔(قطر‎。

总结

是将数据复制到 SQL Server 时 (inState of Qatar 的指标表名,以至从 SQL Server
复制数据时 (out卡塔尔 的源表名。

owner 
表或视图的主人的称呼。 若是推行该操作的客商全体钦赐的表或视图,则
owner 是可选的。 假设未内定owner,并且实践该操作的客商不是钦赐的表或视图的全部者,则 SQL Server
将回来错误音讯,而且该操作将撤废。

bcp特别快速,能够使用C#构成bcp来导入导出数据,非常飞快。

view_name

” query ” 
一个再次来到结果集的 Transact-SQL 查询。
借使该查询再次回到多少个结实集,则只将首先个结果集复制到数据文件,而忽视任何的结果集。
将查询用双引号括起来,将查询中放到的任何内容用单引号括起来。
从询问大体积复制数据时,也必得内定 queryout。

参考:

是将数据复制到 SQL Server 时 (in卡塔尔国 的指标视图名,以致从 SQL Server
复制数据时 (out卡塔尔(قطر‎的源视图名。唯有中间具备列都引用同二个表的视图手艺用作指标视图。有关将数据复制到视图的范围的越来越多消息,请参见
INSERT。

假定在实行 bcp
语句从前存款和储蓄进度内引用的有着表均存在,查询就能够援用该存款和储蓄进度。
举个例子,就算存储进度生成一个不常表,则 bcp
语句便会退步,因为该有的时候表只在运维时可用,而在言语履行时不可用。
在这里种场合下,应酌量将积存进程的结果插入表中,然后选用 bcp
将数据从表复制到数据文件中。

本文同步揭橥在:

Query

table_name 
将数据导入 SQL Server (in卡塔尔国 时为目的表名称,将数据从 SQL Server (out卡塔尔(قطر‎导出时为源表名称。

转自:

是回去二个结实集的 Transact-SQL 查询。假若查询再次回到多个结果集,比方钦定COMPUTE 子句的 SELECT
语句,独有首先个结实集将复制到数据文件,随后的结果集被忽略。使用双引号引起查询语句,使用单引号引起查询语句中放到的其余内容。在从询问中山大学体量复制数据时,还非得内定queryout。

view_name 
将数据复制到 SQL Server (inState of Qatar 时为指标视图名称,从 SQL Server (out卡塔尔国中复制数据时为源视图名称。
唯有在那之中具有列都引用同三个表的视图本事用作目的视图。
有关将数据复制到视图的界定的详细消息,请参阅 INSERT (Transact-SQL卡塔尔(قطر‎。

上学收藏

in | out | queryout | format

-a packet_size 
内定服务器发出或抽出的每一种互联网数据包的字节数。 能够动用 SQL Server
Management Studio(或 sp_configure 系统存款和储蓄进程)来安装服务器配置选项。
可是,能够选择此选项各个代替服务器配置选项。 packet_size 的取值范围为
4096 到 65535 字节,默以为 4096 字节。

点名大体积复制的自由化。in 是从文件复制到数据库表或视图,out
是指从数据库表或视图复制到文件。唯有从询问中大体量复制数据时,才必需钦命queryout。依照内定的选项以至表或视图分隔符,format
将创立叁个格式文件。借使选用 format,则还必须钦命 -f 选项。

叠合数据包能够拉长大体量复制操作的性质。
假诺不可能取得伏乞的相当的大数据包,则利用暗中认可值。 bcp
实用工具生成的属性总括音信方可显得所用的多寡包大小。

表明 Microsoft SQL Server 6.5 中的 bcp 实用工具不扶持大体积复制到包罗sql_variant 或 bigint 数据类型的表。

-b batch_size 
点名每批导入数据的行数。
各种批次均作为一个单身的职业举行导入并记录,在付出以前会导入整批。
暗中认可景况下,数据文件中的全体行均作为多少个批次导入。
若要将行分为多少个批次进行操作,请钦定小于数据文件中的行数的 batch_size。
固然此外批次的事务退步,则将只回滚当前批次中的插入。
已经由已提交业务导入的批次不会遭遇未来停业的影响。

data_file

并不是将此选项与 -h”ROWS_PER_BATCH =bb” 选项联合行使。

大容积复制表或视图到磁盘时所用数据文件的欧洲经济共同体路线。当将数据大体量复制到
SQL Server 时,此数据文件包蕴将复制到钦点表或视图的数目。当从 SQL Server
大容积复制数据时,该数据文件包蕴从表或视图复制的多少。路线能够有 1 到
255 个字符。

-c 
使用字符数据类型推行该操作。 此选项不提示输入种种字段;它应用 char
作为存储类型,不带前缀;使用 \t(制表符)作为字段分隔符,使用
\r\n(换行符)作为行终止符。 -c 与 -w 不匹配。

-m max_errors

关于详细消息,请参阅使用字符格式导入或导出数据 (SQL Server卡塔尔。

点名在大体量复制操作撤销在此之前大概发生的失实的最大数据。bcp
不能复制的每一行都将被忽略并计为一个不当。若无包罗该选拔,则默感到10。

-C { ACP | OEM | RAW | code_page } 
钦命该数据文件中数量的代码页。 仅当数码含有字符值大于 127 或低于 32 的
char、varchar 或 text 列时,code_page 才适用。
ACP 
 ANSI/Microsoft Windows (ISO 1252)。 
 
OEM 
 顾客端使用的私下认可代码页。 未钦点 -C 时采取的暗中同意代码页。 
 
RAW 
 不实行代码页间的调换。 因为不开展改换,所以那是最快的选项。 
 
code_page 
 特定的代码页编号,比如 850。

-f format_file

 
-d database_name 
内定要连接到的数据库。 暗许处境下,bcp.exe 连接到客户的暗许数据库。
假如内定了 -ddatabase_name
和含有三部分的称号(database_name.schema.table,作为第三个参数字传送递给
bcp.exe),则将生出错误,因为您无法一回钦定数据库名称。假诺database_name 以连字符 (-卡塔尔国 或正斜杠 (/卡塔尔国 开始,则不用在 -d
和数据库名称之间增添空格。

点名格式文件的完全路线,该格式文件包罗曾经在同三个表或视图上接收 bcp
时的仓库储存响应。当使用由 format
选项所成立的格式文件大体积复制入或复制出数据时,使用此选项。格式文件的创导是可选的。在提醒多少个格式问题之后,bcp
将唤起是还是不是在格式文件中保留回答。暗中认可文件名叫Bcp.fmt。大容积复制数据时,bcp
可引用二个格式文件,由此不必再度人机联作输入早先的回应。借使未接收此选项,也尚无点名
�n、-c、-w、-6 或 -N,则 bcp 将唤起输入格式新闻。

-e err_file 
点名错误文件的一体化路线,此文件用于存款和储蓄 bcp
实用工具不可能从文件传输到数据库的有着行。 bcp
命令发生的荒诞音信将被发送到客户的职业站。
若是不应用此选项,则不会创设错误文件。

-e err_file

如果 err_file 以连字符 (-卡塔尔 或正斜杠 (/卡塔尔国 起头,则毫不在 -e 与 err_file
值之间含有空格。

点名错误文件的一体化路线,此错误文件用于存款和储蓄 bcp
不能从文件传输到数据库的全部行。来自 bcp
的错误信息将发送到顾客专业站。要是未利用此选项,则不创造错误文件。

-E 
钦赐导入数据文件中的标志值用于标志列。 假设未钦定-E,则将忽视所导入数据文件中此列的标志值,并且 SQL Server
将基于创制表时期内定的种子值和增量值自动分配独一值。

-F first_row

只要数据文件不带有表或视图中的标记列的值,则可选用格式化文件钦赐,在导入数据时应跳过表或视图中的标记列;SQL
Server 将机关为该列分配独一值。 有关详细新闻,请参阅 DBCC CHECKIDENT
(Transact-SQLState of Qatar。

钦命要大体积复制的第一行的序数。暗中认可值是 1,表示在内定数据文件的率先行。
-L last_row

-E 选项有二个分歧经常的权杖要求。 有关详细新闻,请参阅本大旨后边的“备注”。

点名要大体量复制的最终一行的序数。私下认可值是
0,表示钦命数据文件中的最后一行。

-f format_file 
内定格式化文件的完整路线。 此选项的含义决意于使用它的景况,具体如下:

-b batch_size

•假诺 -f 与 format 选项一齐利用,则将为内定的表或视图创造内定的
format_file。 若要开创 XML 格式化文件,请同不常间内定 -x 选项。
有关详细消息,请参阅创设格式化文件 (SQL Server卡塔尔。

点名所复制的每批数量中的行数。每一个批管理作为多个事情复制至服务器。SQL
Server
提交或回滚每种批管理的事情。暗许意况下,钦赐的数据文件中的全数数据都用作一堆复制。请不要与
-h ROWS_PER_BATCH = bb 选项一同利用。

•假设与 in 或 out 选项一同利用,则 -f 须要叁个存世的格式化文件。

-n

-F first_row 
钦命要从表中程导弹出或从数据文件导入的第一行的号子。 此参数的值应大于 (>State of Qatar0,小于 (<卡塔尔 或等于 (=卡塔尔国 总行数。
假如未内定此参数,则默感到文件的首先行。

动用数据的本机数据类型推行大容积复制操作。此选项不提示输入每一字段,它将动用本机值。

first_row 能够是叁个最大为 2^63-1 的正整数值。 -F first_row 从 1
开始。

-c

-h ” hint[ ,…n] ” 
钦点向表或视图中山大学容积导入数据时要用到的提拔。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图