Bulk Insert具体订单

BULK INSERT与用户指定的格式的数据文件复制到数据库表或视图。

语法:

  1. BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }
  2. WITH  (
  3. [ BATCHSIZE [ = batch_size ] ],
  4. [ CHECK_CONSTRAINTS ],
  5. [ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ],
  6. [ DATAFILETYPE [ = 'char' | 'native'| 'widechar' | 'widenative' ] ],
  7. [ FIELDTERMINATOR [ = 'field_terminator' ] ],
  8. [ FIRSTROW [ = first_row ] ],
  9. [ FIRE_TRIGGERS ],
  10. [ FORMATFILE = 'format_file_path' ],
  11. [ KEEPIDENTITY ],
  12. [ KEEPNULLS ],
  13. [ KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ],
  14. [ LASTROW [ = last_row ] ],
  15. [ MAXERRORS [ = max_errors ] ],
  16. ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ],
  17. [ ROWS_PER_BATCH [ = rows_per_batch ] ],
  18. [ ROWTERMINATOR [ = 'row_terminator' ] ],
  19. [ TABLOCK ],
  20. )
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 ],
)

參数:
'database_name'
是包括指定表或视图的数据库的名称。假设未指定,则系统默觉得当前数据库。

'owner'
是表或视图全部者的名称。

当运行大容量复制操作的用户拥有指定的表或视图时,owner 是可选项。假设没有指定 owner 而且运行大容量复制操作的用户不拥有指定的表或视图,则 Microsoft® SQL Server? 将返回错误信息并取消大容量复制操作。

'table_name'
是大容量复制数据于当中的表或视图的名称。仅仅能使用那些全部的列引用同样基表所在的视图。有关向视图中复制数据的限制的很多其它信息,请參见 INSERT。

'data_file'
是数据文件的完整路径,该数据文件包括要拷贝到指定表或视图的数据。BULK INSERT 从磁盘复制数据(包括网络、软盘、硬盘等)。 data_file 必须从运行 SQL Server 的server指定有效路径。假设 data_file 是远程文件,则请指定通用命名规则 (UNC) 名称。

BATCHSIZE [ = batch_size ]
指定批处理中的行数。

每一个批处理作为一个事务复制至server。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_TRIGGERS。将不运行不论什么插入触发器。

FORMATFILE [ = 'format_file_path' ]
指定一个格式文件的完整路径。格式文件描写叙述了含有存储响应的数据文件,这些存储响应是使用 bcp 有用工具在同样的表或视图中创建的。格式文件应该用于下面情况: 数据文件含有比表或视图很多其它或更少的列。列使用不同的顺序。

列切割符发生变化。数据格式有其它的改变。通常。格式文件通过 bcp 有用工具创建而且依据须要用文本编辑器改动。有关很多其它信息。请參见 bcp 有用工具。

KEEPIDENTITY
指定标识列的值存在于导入文件里。假设没有指定 KEEPIDENTITY。在导入的数据文件里此列的标识值将被忽略,而且 SQL Server 将依据表创建时指定的种子值和增量值自己主动赋给一个唯一的值。假如数据文件不含该表或视图中的标识列,使用一个格式文件来指定在导入数据时,表或视图中的标识列应被忽略;SQL Server 自己主动为此列赋予唯一的值。

有关具体信息,请參见 DBCC CHECKIDENT。

KEEPNULLS
指定在大容量复制操作中空列应保留一个空值。而不是对插入的列赋予默认值。

KILOBYTES_PER_BATCH [ = kilobytes_per_batch ]
指定每一个批处理中数据的近似千字节数(KB)。

默认情况下,KILOBYTES_PER_BATCH 未知。

LASTROW [ = last_row ]
指定要复制的最后一行的行号。

默认值是 0,表示指定数据文件里的最后一行。

MAXERRORS [ = max_errors ]
指定在大容量复制操作取消之前可能产生的错误的最大数目。不能被大容量复制操作导入的每一行将被忽略而且被计为一次错误。假设没有指定 max_errors。默认值为 0。

ORDER ( { column [ ASC | DESC ] } [ ,...n ] )
指定数据文件里的数据怎样排序。假设装载的数据依据表中的聚集索引进行排序,则能够提高大容量复制操作的性能。假设数据文件基于不同的顺序排序,或表中没有聚集索引,ORDER 子句将被忽略。给出的列名必须是目的表中有效的列。

默认情况下。大容量插入操作假设数据文件未排序。

n是表示能够指定多列的占位符。

ROWS_PER_BATCH [ = rows_per_batch ]
指定每一批处理数据的行数(即 rows_per_bacth)。

当没有指定 BATCHSIZE 时使用。导致整个数据文件作为单个事务发送给server。server依据 rows_per_batch 优化大容量装载。

默认情况下。ROWS_PER_BATCH 未知。

ROWTERMINATOR [ = 'row_terminator' ]
指定对于 char 和 widechar 数据文件要使用的行终止符。

默认值是 /n(换行符)。

TABLOCK
指定对于大容量复制操作期间获取一个表级锁。假设表没有索引而且指定了 TABLOCK。则该表能够同一时候由多个client装载。默认情况下。锁定行为是由表选项 table lock on bulk load 决定的。

仅仅在大容量复制操作期间控制锁会降低表上的锁争夺,极大地提高性能。凝视BULK INSERT 语句能在用户定义事务中运行。

对于一个用 BULK INSERT 语句和 BATCHSIZE 子句将数据装载到使用多个批处理的表或视图中的用户定义事务来说,回滚它将回滚全部发送给 SQL Server 的批处理。

权限仅仅有 sysadmin 和 bulkadmin 固定server角色成员才干运行 BULK INSERT。

演示样例本例从指定的数据文件里导入订单具体信息,该文件使用竖杠 (|) 字符作为字段终止符,使用 |/n 作为行终止符。

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

本例指定 FIRE_TRIGGERS 參数。

  1. BULK INSERT Northwind.dbo.[Order Details]   FROM 'f:/orders/lineitem.tbl'
  2. WITH (
  3. FIELDTERMINATOR = '|',
  4. ROWTERMINATOR = ':/n',
  5. FIRE_TRIGGERS
  6. )
  7. =============================================================
  8. BULK INSERT
  9. [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
  10. FROM 'data_file'
  11. WITH
  12. (
  13. [ [ , ] BATCHSIZE = batch_size ]    --BATCHSIZE指令来设置在单个事务中能够插入到表中的记录的数量
  14. [ [ , ] CHECK_CONSTRAINTS ]     --指定在大容量导入操作期间,必须检查全部对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项。则全部 CHECK 和 FOREIGN KEY 约束都将被忽略。而且在此操作之后表的约束将标记为不可信。
  15. [ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]  --指定该数据文件里数据的代码页
  16. [ [ , ] DATAFILETYPE =
  17. { 'char' | 'native'| 'widechar' | 'widenative' } ]  --指定 BULK INSERT 使用指定的数据文件类型值运行导入操作。
  18. [ [ , ] FIELDTERMINATOR = 'field_terminator' ]  --标识分隔内容的符号
  19. [ [ , ] FIRSTROW = first_row ]    --指定要载入的第一行的行号。

    默认值是指定数据文件里的第一行

  20. [ [ , ] FIRE_TRIGGERS ]     --是否启动触发器
  21. [ [ , ] FORMATFILE = 'format_file_path' ]
  22. [ [ , ] KEEPIDENTITY ]   --指定导入数据文件里的标识值用于标识列
  23. [ [ , ] KEEPNULLS ]    --指定在大容量导入操作期间空列应保留一个空值。而不插入用于列的不论什么默认值
  24. [ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
  25. [ [ , ] LASTROW = last_row ]   --指定要载入的最后一行的行号
  26. [ [ , ] MAXERRORS = max_errors ]   --指定同意在数据中出现的最多语法错误数,超过该数量后将取消大容量导入操作。
  27. [ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]  --指定数据文件里的数据怎样排序
  28. [ [ , ] ROWS_PER_BATCH = rows_per_batch ]
  29. [ [ , ] ROWTERMINATOR = 'row_terminator' ]   --标识分隔行的符号
  30. [ [ , ] TABLOCK ]     --指定为大容量导入操作持续时间获取一个表级锁
  31. [ [ , ] ERRORFILE = 'file_name' ]   --指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。

  32. )]
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 行集的行的文件。 )]

以下写个个简单的应用样例

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

Bulk Insert具体订单的更多相关文章

  1. Bulk Insert命令具体

    Bulk Insert命令具体 BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ...

  2. Bulk Insert 高效快速插入数据

    BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_nam ...

  3. 使用“bulk insert ”进行批量插入数据

    本文转自csdn中文章,再次感谢他给我们分享. Bulk Insert命令详细 BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中.语法: BULK INSERT [ [ 'da ...

  4. Bulk Insert:将文本数据(csv和txt)导入到数据库中

    将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INS ...

  5. 笔记整理之 Bulk Insert

    之前2篇日志整理了BCP大致的用法,这次整理一下它的兄弟 Bulk Insert 的写法以及和bcp那边的结合的用法. 首先,Bulk Insert 语句要在连接了Sql Server 服务器之后才执 ...

  6. SQL Server Bulk Insert批量数据导入

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

  7. Bulk Insert的用法 .

    /******* 导出到excel */EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:/temp1.xls -c -q -S&quo ...

  8. Bulk Insert & BCP执行效率对比(续)

    上回由于磁盘空间(约70G)不足,导致Bulk Insert和BCP导入中途失败:今次统一一些操作,以得到Bulk insert与BCP分别执行效率: 1. 15435390笔数据,21.7G csv ...

  9. Bulk Insert & BCP执行效率对比

    我们以BCP导出的CSV数据文件,分别使用Bulk insert与BCP导入数据库,对比两种方法执行效率 备注:导入目标表创建了分区聚集索引 1.BCP导出csv数据文件 数据量:15000000行, ...

随机推荐

  1. SE 2014年5月22日

    一.   用自己的理解描述 tunnel接口状态 up和down的情况都有哪些 Tunnel接口的状态UP:隧道的目标有可达路由. Tunnel接口的状态Down:隧道的目标路由不可达. 如图配置实验 ...

  2. C#List<long>与String(Linq)

    1.string => List<long> string ShopIds = "1,2,3"; var ShopIdList = ShopIds.Split(' ...

  3. 【译】ASP.NET MVC 5 教程 - 3:添加视图

    原文:[译]ASP.NET MVC 5 教程 - 3:添加视图 在本节内容中,我们将修改HelloWorldController类,使用视图模板来干净利索的封装生成HTML响应客户端的过程. 您将创建 ...

  4. ASIHttpRequest 摘要

    向server端上传数据 ASIFormDataRequest ,模拟 Form表单提交,其提交格式与 Header会自己主动识别. 没有文件:application/x-www-form-urlen ...

  5. HTML中的div标签

    在网页制作过程过中,能够把一些独立的逻辑部分划分出来.放在一个<div>标签中,这个<div>标签的作用就相当于一个容器. 为了使逻辑更加清晰,我们能够为这一个独立的逻辑部分设 ...

  6. Android网络编程http派/申请服务

    最近的研究Android网络编程知识,这里有一些想法,今晚学习.与您分享. 在实际的应用程序的开发非常需要时间appserver请求数据,那么app怎样发送请求呢?以下的代码就是当中的一种情况.使用H ...

  7. 记得有一个奇怪的ORA-04028: cannot generate diana for object

    开发商称新一package,目前已经在翻译过程中的一些错误.提示PL/SQL:ORA-00942: table or view does not exists.这是一个非常明显的错误,即要么是表不存在 ...

  8. Linux下将UTF8编码批量转换成GB2312编码的方法

    Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux ...

  9. 该View转换成Bitmap方法

    方法一: /** * 该View绘制到Bitmap上 * @param view 须要绘制的View * @param width 该View的宽度 * @param height 该View的高度 ...

  10. Quartz时间配置

    格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明  是否必填  允许填写的值 允许的通配符  1  秒  是  0-59    , - * /  2  分  是  0-5 ...