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. 搭建php环境时解决jpeg6 make: ./libtool:命令未找到

    搭建php环境时解决jpeg6 make: ./libtool:命令未找到 [root@bogon jpeg-6b]# make; make install ./libtool --mode=comp ...

  2. POJ2155:Matrix(二维树状数组,经典)

    Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the ...

  3. WPF自定义ListBox样式

    <!--竖向--> <Style x:Key="ListBoxStyle1" TargetType="{x:Type ListBox}"> ...

  4. AndroidMainFest.xml file missing!

    今天在导入项目的时候出现了这种错误: 仅仅须要一步 就搞定: projecct --->  clean  又一次编译一下就可以搞定了.

  5. ORACLE函数之日期时间运算函数

    1            ADD_MONTHS 格式:ADD_MONTHS(D,N) 说明:返回日期时间D加N月后相应的日期时间.N为正时则表示D之后:N为负时则表示为D之前.N为小数则会自己主动先删 ...

  6. 每日回顾Shell —cat,tail,head

    Shell中常常会用到cat命令.可是总是不是特别清楚: cat命令的用途是连接文件或标准输入并打印. 这个命令经常使用来显示文件内容.或者将几个文件连接起来显示.或者从标准输入读取内容并显示,它常与 ...

  7. php查找字符串是否存在

    strstr //搜索字符串在另一字符串中的首次出现(对大小写敏感) //该函数返回字符串的其余部分(从匹配点).如未找到则返回 false stristr //查找字符串在另一字符串中第一次出现的位 ...

  8. 讨论JDK的File.equal()

    我们一般比较两个文件中的对象是相同的文件,通常使用java.io.File.equal().这里,equal()是不是文件内容的比较结果为.象是否指向同一个文件. File的equal()方法.实际上 ...

  9. J2SE基础:4.面向对象的特性一

    面向对象的特性 封装 继承多态 封装: 定义: 通过对象的封装,实现了模块化和信息隐藏. 通过对类的成员施以一定的訪问权限,实现了类中成员 的信息隐藏 注意点: 对象自已该做的一些事情与方法不能交与其 ...

  10. POJ 3264-Balanced Lineup(段树:单点更新,间隔查询)

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 34522   Accepted: 16224 ...