基本提示:bcp 实用工具在 Microsoftreg; SQL Server#8482; 二零零四实例和数据文件之间以客商钦命的格式复数据

bcp是SQL
Server中承担导入导出数据的二个命令行工具,它是基于DB-Library的,并且能以互相的方法急迅地导入导出大量的数据。bcp可以将数据库的表或视图直接导出,也能由此SELECT
FROM语句对表或视图进行过滤后导出。在导入导出数据时,可以行使暗许值或是使用三个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中。下边将详细商量哪些运用bcp导入导出多少。
1. bcp的重要参数介绍 bcp共有四个动作能够筛选。 (1State of Qatar 导入。
这些动作使用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值插入,并不是那列的私下认可值。 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.State of Qatar 上面是currency1.txt的一部分剧情 AED Emirati
Dirham 壹玖玖捌-06-01 00:00:00.000 AFA Afghani 1996-06-01 00:00:00.000 …
… … … … … ZWD Zimbabwe Dollar 1996-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 SQLCHACR-V 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’
在导入数据时能够依赖现已存在的格式文件将知足条件的笔录导入到数据库中,不满意则不导入。如上述的格式文件中的第多少个字段的字符长度是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命令详细解释(sybase卡塔尔国 bcp 实用工具在 Microsoft SQL Server 二〇〇三实例和数据文件之间以客商钦赐的格式复制数据。 语法 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 时 (in卡塔尔国 的指标表名,以至从 SQL Server
复制数据时 (out卡塔尔国 的源表名。 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 开始时代版本中的数据类型推行大体量复制操作。此选项与字符 (-c卡塔尔 或本机
(-n卡塔尔(قطر‎格式一同行使。此选项并不提示输入每一字段,它使用私下认可值。比如,若要将 SQL
Server 6.5 中的 bcp 实用工具所支持的日期格式大容积复制到 SQL Server
二零零零,可应用 -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_IDENTIFIESportageS ON
语句。使用该选项内定包涵空格或引号的数据库、全部者、表或视图的称谓。将由三局地构成的全套表名或视图名引在双引号
(” “卡塔尔(قطر‎ 中。 -C code_page
仅为保证向后包容性。作为代表,请在格式文件或人机联作式 bcp
中为每一列钦点三个排序法则名。
钦命数据文件中的数据代码页。独有当数码中蕴藏字符值大于 127 或小于 32 的
char、varchar 或 text 列时,code_page 才有用。 代码页值 描述 ACP
ANSI/Microsoft Windows? (ISO 1252卡塔尔。 OEM
客商程序使用的暗中同意代码页。假如未钦定 -C,则那是 bcp 使用的暗中同意代码页。
RAW
不产生从一个代码页到另叁个代码页的转换。因为不发出转变,所以那是最快的选项。
值 特定的代码页号码,比如 850。 -t 田野_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 2003命名实例。借使未钦赐服务器,则 bcp 连接到地面计算机上的 SQL Server
暗中同意实例。从互连网上的远间距计算机实行 bcp 时,必要此选项。 -U login_id
钦点用于连接到 SQL Server 的登入 ID。 -P password 钦定登陆 ID
的密码。假设未使用此选项,则 bcp
将唤起输入密码。假诺不带密码将此选项用于命令提醒行末尾,则 bcp
将运用私下认可密码 (NULL卡塔尔(قطر‎。 -T 钦赐 bcp
使用网络客户的安全凭据,通过信赖连接连接到 SQL Server。无需 login_id
和 password。 -v 报告 bcp 实用工具的版本号和版权。 -PRADO钦命使用为顾客端计算机的区域安装定义的区域格式,将货币、日期和岁月数额大体积复制到
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 版本] [-瑞虎 允许利用区域安装]
[-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:

BULK INSERT以顾客钦点的格式复制二个数据文件至数据库表或视图中。 语法:

方法-:用BCP命令

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

BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' } WITH ( [ BATCHSIZE [ = batch_size ] ], [ CHECK_CONSTRAINTS ], [ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ], [ DATAFILETYPE [ = 'char' | 'native'| 'widechar' | 'widenative' ] ], [ FIELDTERMINATOR [ = 'field_terminator' ] ], [ FIRSTROW [ = first_row ] ], [ FIRE_TRIGGERS ], [ FORMATFILE = 'format_file_path' ], [ KEEPIDENTITY ], [ KEEPNULLS ], [ KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ], [ LASTROW [ = last_row ] ], [ MAXERRORS [ = max_errors ] ], [ ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ], [ ROWS_PER_BATCH [ = rows_per_batch ] ], [ ROWTERMINATOR [ = 'row_terminator' ] ], [ TABLOCK ],)

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 行。

参数: ‘database_name’
是包括钦点表或视图的数据库的名称。假诺未钦赐,则系统默以为眼前数据库。
‘owner’
是表或视图全数者的称谓。当实践大体积复制操作的客商具有钦定的表或视图时,owner
是可选项。若无一点点名 owner
况且实践大体积复制操作的顾客不具备内定的表或视图,则 Microsoft SQL
Server 将回来错误新闻并撤回大容量复制操作。 ‘table_name’
是大体量复制数据于个中的表或视图的称呼。只可以动用那么些负有的列引用相符基表所在的视图。有关向视图中复制数据的限定的更加的多音信,请参见
INSERT。 ‘data_file’
是数据文件的全体路线,该数据文件包罗要复制到钦赐表或视图的多少。BULK
INSERT 从磁盘复制数据。 data_file 必需从运转 SQL Server
的服务器钦命有效路子。借使 data_file 是长途文件,则请钦赐通用命名法规(UNC卡塔尔 名称。 BATCHSIZE [ = batch_size ]
钦点批管理中的行数。每一个批管理作为叁个工作复制至服务器。SQL
Server提交或回滚种种批管理的事务。暗中认可情况下,钦定数据文件中的全部数据是二个批管理。
CHECK_CONSTRAINTS 钦定在大体积复制操作中检查 table_name
的其他自律。私下认可景况下,将会忽视节制。 CODEPAGE [ = ‘ACP’ | ‘OEM’ |
‘RAW’ | ‘code_page’ ]

钦定该数据文件中数量的代码页。仅当数码含有字符值大于 127 或小于 32 的
char、varchar 或 text 列时,CODEPAGE 才是适用的。CODEPAGE 值 描述 ACP
char、varchar 或 text 数据类型的列从 ANSI/Microsoft Windows 代码页 ISO
1252 调换为 SQL Server 代码页。 OEM char、varchar 或 text
数据类型的列被从系统 OEM 代码页转变为 SQL Server 代码页。 RAW
并不开展从多少个代码页到另叁个代码页的转换;这是最快的选项。 code_page
特定的代码页号码,比方 850。 DATAFILETYPE [ = {‘char’ | ‘native’ |
‘widechar’ | ‘widenative’ } ]
指定 BULK INSERT
使用钦命的暗许值推行复制操作。DATAFILETYPE 值 描述 char
从含有字符数据的数据文件实践大体积复制操作。 native 使用
native数据类型实行大体积复制操作。要装载的数据文件由大容积复制数据创制,该复制是用
bcp 实用工具从 SQL Server 进行的。 widechar 从含有 Unicode
字符的数据文件中进行大容积复制操作。 widenative 推行与 native
雷同的大容积复制操作,分歧的地方是 char、varchar 和 text
列在数据文件中存款和储蓄为
Unicode。要装载的数据文件由大容积复制数据制造,该复制是用 bcp 实用工具从
SQL Server 进行的。该选项是对 widechar
选项的叁个越来越高品质的代表,况且它用来接受数据文件从叁个运营 SQL Server
的微处理机向另叁个计算机传送数据。当传送含有 ANSI
扩充字符的数量时,使用该选项以便利用 native 格局的习性。
FIELDTERMINATOR [ = ‘field_terminator’ ] 内定用于 char 和
widechar 数据文件的字段终止符。暗许的字段终止符是 /t。 FIRSTROW [ =
first_row ]
内定要复制的第一行的行号。默许值是
1,表示在钦点数据文件的首先行。 FIRE_TRIGGERS
钦点指标表中定义的别样插入触发器将在大容积复制操作进程中实施。若无一些名
FIRE_TRIGGEOdysseyS,将不实施此外插入触发器。 FORMATFILE [ =
‘format_file_path’ ]

钦赐四个格式文件的一体化路线。格式文件描述了蕴含存储响应的数据文件,这几个囤积响应是使用
bcp 实用工具在平等的表或视图中开创的。格式文件应该用于以下情况:
数据文件含有比表或视图越来越多或更加少的列。列使用差别的顺序。列分割符发生变化。数据格式有任何的变动。平日,格式文件通过
bcp 实用工具创造何况根据供给用文件编辑器更改。有关更加的多新闻,请参见 bcp
实用工具。 KEEPIDENTITY 钦点标识列的值存在于导入文本中。若无一些名
KEEPIDENTITY,在导入的数据文件中此列的标志值将被忽视,何况 SQL Server
将基于表创设时内定的种子值和增量值自动赋给叁个独一的值。若是数据文件不含该表或视图中的标记列,使用多少个格式文件来内定在导入数据时,表或视图中的标志列应被忽略;SQL
Server 自动为此列给予独一的值。有关详细新闻,请参见 DBCC CHECKIDENT。
KEEPNULLS
钦赐在大体积复制操作中空驶列车应封存一个空值,并不是对插入的列授予私下认可值。
KILOBYTES_PER_BATCH [ = kilobytes_per_batch ]
钦命每一个批管理中数据的切近千字节数。暗中同意意况下,KILOBYTES_PER_BATCH
未知。 LASTROW [ = last_row ]
内定要复制的尾声一行的行号。私下认可值是 0,表示钦点数据文件中的最终一行。
MAXERRORS [ = max_errors ]
内定在大容积复制操作裁撤在此以前大概发生的错误的最大额。不能够被大容积复制操作导入的每一行将被忽视并且被计为一次错误。若无一点点名
max_errors,暗中认可值为 0。 ORDER ( { column [ ASC | DESC ] } [ ,…n
] )

钦定数据文件中的数据怎样排序。假诺装载的多寡依附表中的聚焦索引进行排序,则足以增加大体量复制操作的属性。倘若数据文件基于不一致的逐一排序,或表中未有聚焦索引,O牧马人DE大切诺基子句将被忽略。给出的列名必得是目标表中有效的列。默许情形下,大容积插入操作假使数据文件未排序。n是表示能够钦定多列的占位符。
ROWS_PER_BATCH [ = rows_per_batch ]
钦定每一堆管理数据的行数。当未有一点名 BATCHSIZE
时采用,导致整个数据文件作为单个事务发送给服务器。服务器依据rows_per_batch 优化大体积装载。私下认可景况下,ROWS_PER_BATCH 未知。
ROWTERMINATOR [ = ‘row_terminator’ ] 钦定对于 char 和 widechar
数据文件要动用的行终止符。暗中认可值是 /n。 TABLOCK
钦点对于大体量复制操作时期得到二个表级锁。假若表未有索引并且钦赐了
TABLOCK,则该表能够并且由四个顾客端装载。暗中认可情状下,锁定行为是由表选项
table lock on bulk load
决定的。只在大体量复制操作期间决定锁会压缩表上的锁争夺,十分大地提升品质。注释BULK
INSERT 语句能在顾客定义事务中推行。对于三个用 BULK INSERT 语句和
BATCHSIZE
子句将数据装载到利用多个批管理的表或视图中的顾客定义事务来讲,回滚它将回滚全部发送给
SQL Server 的批管理。权限独有 sysadmin 和 bulkadmin
固定服务器角色成员技巧实践 BULK INSERT。
示例本例从钦定的数据文件中导入订单详细消息,该文件使用竖杠 (|卡塔尔国字符作为字段终止符,使用 |/n 作为行终止符。

bcp 实用工具在 Microsoftreg; SQL Server™ 二〇〇四实例和数据文件之间以客户内定的格式复数据。

database_name 
点名的表或视图所在数据库的名称。 如若未钦定,则应用客商的暗许数据库。

BULK INSERT Northwind.dbo.[Order Details] FROM 'f:/orders/lineitem.tbl' WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = '|/n' )

语法

也得以运用 d- 显式钦命数据库名称。

本例钦点 FIRE_TRIGGERS 参数。

代码: 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 
点名大容积复制的矛头,具体如下:

BULK INSERT Northwind.dbo.[Order Details] FROM 'f:/orders/lineitem.tbl' WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = ':/n', FIRE_TRIGGERS ) ============================================================= BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' [ WITH ( [ [ , ] BATCHSIZE = batch_size ] --BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量 [ [ , ] CHECK_CONSTRAINTS ] --指定在大容量导入操作期间,必须检查所有对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项,则所有 CHECK 和 FOREIGN KEY 约束都将被忽略,并且在此操作之后表的约束将标记为不可信。 [ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] --指定该数据文件中数据的代码页 [ [ , ] DATAFILETYPE = { 'char' | 'native'| 'widechar' | 'widenative' } ] --指定 BULK INSERT 使用指定的数据文件类型值执行导入操作。 [ [ , ] FIELDTERMINATOR = 'field_terminator' ] --标识分隔内容的符号 [ [ , ] FIRSTROW = first_row ] --指定要加载的第一行的行号。默认值是指定数据文件中的第一行 [ [ , ] FIRE_TRIGGERS ] --是否启动触发器 [ [ , ] FORMATFILE = 'format_file_path' ] [ [ , ] KEEPIDENTITY ] --指定导入数据文件中的标识值用于标识列 [ [ , ] KEEPNULLS ] --指定在大容量导入操作期间空列应保留一个空值,而不插入用于列的任何默认值 [ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ] [ [ , ] LASTROW = last_row ] --指定要加载的最后一行的行号 [ [ , ] MAXERRORS = max_errors ] --指定允许在数据中出现的最多语法错误数,超过该数量后将取消大容量导入操作。 [ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] --指定数据文件中的数据如何排序 [ [ , ] ROWS_PER_BATCH = rows_per_batch ] [ [ , ] ROWTERMINATOR = 'row_terminator' ] --标识分隔行的符号 [ [ , ] TABLOCK ] --指定为大容量导入操作持续时间获取一个表级锁 [ [ , ] ERRORFILE = 'file_name' ] --指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。 )] 

钦赐的表或视图所在数据库的名称。假使未钦点,则为客户私下认可数据库。

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

上边写个个简单的利用例子

owner

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

bulk insert xsxt.dbo.tabletest from 'c:/data.txt' with( FIELDTERMINATOR=',', ROWTERMINATOR='/n' )

表或视图全体者的名称。假若实施大体积复制操作的客户全数钦定的表或视图,则
owner 是可选的。若无一点名 owner
并且履行大体积复制操作的客商不享有内定的表或视图,则 Microsoftreg; SQL
Server™ 二零零二 将回到错误新闻并收回大体积复制操作。

•queryout 从询问中复制,仅当从询问大体量复制数据时才必得钦命此选项。

table_name

•format 依照钦命的取舍(-n、-c、-w 或
-N)以致表或视图的相间符创造格式化文件。 大体积复制数据时,bcp
命令能够援引二个格式化文件,进而防止以交互作用情势重复输入格式消息。 format
选项必要内定 -f 选项;创制 XML 格式化文件时还索要钦定 -x 选项。
有关详细消息,请参阅创制格式化文件 (SQL Server卡塔尔。 您必得钦命 nul 作为值
(format nulState of Qatar。

是将数据复制到 SQL Server 时 (in卡塔尔 的目标表名,以致从 SQL Server
复制数据时 (out卡塔尔国 的源表名。

owner 
表或视图的全部者的称谓。 即使推行该操作的客商具备内定的表或视图,则
owner 是可选的。 倘若未钦命owner,何况实践该操作的顾客不是点名的表或视图的持有者,则 SQL Server
将回来错误新闻,而且该操作将注销。

view_name

” query ” 
三个赶回结果集的 Transact-SQL 查询。
假设该查询重回三个结果集,则只将第贰个结实集复制到数据文件,而忽略任何的结果集。
将查询用双引号括起来,将查询中寄存的别的内容用单引号括起来。
从询问大体积复制数据时,也必得钦赐 queryout。

是将数据复制到 SQL Server 时 (inState of Qatar 的指标视图名,以致从 SQL Server
复制数据时 (out卡塔尔国的源视图名。独有在那之中有着列都援用同二个表的视图手艺用作指标视图。有关将数据复制到视图的限定的更多新闻,请参见
INSERT。

举例在奉行 bcp
语句在此以前存款和储蓄进程内援用的享有表均存在,查询就足以援引该存储进程。
举个例子,要是存储进程生成叁个有的时候表,则 bcp
语句便会倒闭,因为该不经常表只在运转时可用,而在言语实施时不可用。
在这里种情形下,应思谋将积存进程的结果插入表中,然后利用 bcp
将数据从表复制到数据文件中。

Query

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

是回来三个结实集的 Transact-SQL 查询。假设查询重临四个结实集,举个例子钦定COMPUTE 子句的 SELECT
语句,唯有首先个结果集将复制到数据文件,随后的结果集被忽视。使用双引号引起查询语句,使用单引号引起查询语句中寄存的其他内容。在从询问中山大学体量复制数据时,还必得钦赐queryout。

view_name 
将数据复制到 SQL Server (in卡塔尔国 时为对象视图名称,从 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 以连字符 (-State of Qatar 或正斜杠 (/State of Qatar 起始,则不用在 -d
和数据库名称之间增添空格。

点名格式文件的完好路径,该格式文件包罗以往在同二个表或视图上运用 bcp
时的仓库储存响应。当使用由 format
选项所成立的格式文件大容积复制入或复制出数据时,使用此选项。格式文件的成立是可选的。在提醒多少个格式难点之后,bcp
将唤起是或不是在格式文件中保存回答。暗中同意文件名称为Bcp.fmt。大体积复制数据时,bcp
可援用二个格式文件,因而不必再次人机联作输入从前的应对。如若未利用此选项,也未尝点名
�n、-c、-w、-6 或 -N,则 bcp 将唤起输入格式消息。

-e err_file 
钦定错误文件的欧洲经济共同体路线,此文件用于存储 bcp
实用工具非常的小概从文件传输到数据库的兼具行。 bcp
命令发生的失实消息将被发送到客商的专门的工作站。
假使不应用此选项,则不会创制错误文件。

-e err_file

如果 err_file 以连字符 (-State of Qatar 或正斜杠 (/卡塔尔国 最初,则不用在 -e 与 err_file
值之间含有空格。

点名错误文件的一体化路线,此错误文件用于存款和储蓄 bcp
不能从文件传输到数据库的全体行。来自 bcp
的错误新闻将发送到顾客职业站。若是未使用此选项,则不创建错误文件。

-E 
点名导入数据文件中的标志值用于标记列。 假使未指定-E,则将忽视所导入数据文件中此列的标志值,並且 SQL Server
将依赖创立表时期钦赐的种子值和增量值自动分配独一值。

-F first_row

假定数据文件不富含表或视图中的标记列的值,则可使用格式化文件钦点,在导入数据时应跳过表或视图中的标志列;SQL
Server 将机关为该列分配唯一值。 有关详细音信,请参阅 DBCC CHECKIDENT
(Transact-SQL卡塔尔国。

点名要大体积复制的首先行的序数。暗许值是 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 
点名要从表中程导弹出或从数据文件导入的首先行的号子。 此参数的值应大于 (>)0,小于 (<卡塔尔 或等于 (=卡塔尔(قطر‎ 总行数。
假设未钦命此参数,则默感觉文件的首先行。

使用数据的本机数据类型实行大容积复制操作。此选项不升迁输入每一字段,它将使用本机值。

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

-c

-h ” hint[ ,…n] ” 
点名向表或视图中山高校体积导入数据时要用到的晋升。

发表评论

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

CopyRight © 2015-2020 金沙中心城 All Rights Reserved.
网站地图xml地图