Bulk Insert具体订单
Bulk Insert具体订单
BULK INSERT与用户指定的格式的数据文件复制到数据库表或视图。
语法:
- 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 ],
- )
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 作为行终止符。
- BULK INSERT Northwind.dbo.[Order Details] FROM 'f:/orders/lineitem.tbl'
- WITH (
- FIELDTERMINATOR = '|',
- ROWTERMINATOR = '|/n'
- )
BULK INSERT Northwind.dbo.[Order Details] FROM 'f:/orders/lineitem.tbl'
WITH (
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|/n'
)
本例指定 FIRE_TRIGGERS 參数。
- 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 行集的行的文件。
- )]
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 行集的行的文件。 )]
以下写个个简单的应用样例
- bulk insert xsxt.dbo.tabletest from 'c:/data.txt'
- with(
- FIELDTERMINATOR=',',
- ROWTERMINATOR='/n'
- )
Bulk Insert具体订单的更多相关文章
- Bulk Insert命令具体
Bulk Insert命令具体 BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ...
- Bulk Insert 高效快速插入数据
BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_nam ...
- 使用“bulk insert ”进行批量插入数据
本文转自csdn中文章,再次感谢他给我们分享. Bulk Insert命令详细 BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中.语法: BULK INSERT [ [ 'da ...
- Bulk Insert:将文本数据(csv和txt)导入到数据库中
将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INS ...
- 笔记整理之 Bulk Insert
之前2篇日志整理了BCP大致的用法,这次整理一下它的兄弟 Bulk Insert 的写法以及和bcp那边的结合的用法. 首先,Bulk Insert 语句要在连接了Sql Server 服务器之后才执 ...
- SQL Server Bulk Insert批量数据导入
SQL Server的Bulk Insert语句可以将本地或远程的数据文件批量导入到数据库中,速度非常的快.远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP ...
- Bulk Insert的用法 .
/******* 导出到excel */EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:/temp1.xls -c -q -S&quo ...
- Bulk Insert & BCP执行效率对比(续)
上回由于磁盘空间(约70G)不足,导致Bulk Insert和BCP导入中途失败:今次统一一些操作,以得到Bulk insert与BCP分别执行效率: 1. 15435390笔数据,21.7G csv ...
- Bulk Insert & BCP执行效率对比
我们以BCP导出的CSV数据文件,分别使用Bulk insert与BCP导入数据库,对比两种方法执行效率 备注:导入目标表创建了分区聚集索引 1.BCP导出csv数据文件 数据量:15000000行, ...
随机推荐
- 【翻译】我钟爱的Visual Studio前端开发工具/扩展
原文:[翻译]我钟爱的Visual Studio前端开发工具/扩展 怎么样让Visual Studio更好地编写HTML5, CSS3, JavaScript, jQuery,换句话说就是如何更好地做 ...
- jquery validation remote depends 验证触发条件
背景: 1:简介页面的变化: 2:邮箱不能反复 改动页面,邮箱默认带出,但字段上带有remote验证.不能反复,焦点由邮箱输入框失去时.会默认触发remote验证. 介绍完成 watermark/2/ ...
- java读写文件
对于任何文件,不管有没有扩展名,都可以读写.切记,最后要.close();,否则效果出不来. 读操作: package com.wjy.read; import java.io.BufferedRea ...
- Android之查看外部依赖jar的源代码_android private libralies does not allow modifications to source
在Eclipse中开发android的应用程序时,有时想查看函数的内部实现.可是当在函数上点击ctrl和鼠标左键的时候. 往往出现例如以下提示: Class File Editor Source no ...
- js检测浏览器中是否安装了flash播放插件
这两天工作中需要在网页中嵌入flash小游戏,我使用的是swfobject.js version:1.5.其他方面都很好,唯独版本检测这里一直没有搞通,后来实在无奈之下,改用js来检测浏览器的flas ...
- 视频编解码器,bbv 缓冲区溢出和下溢
使用硬件相似数据处理.数据通常未来,形式的处理后,立即出动.所以,一般有一个数据馈送,数据输出,2接口. 实时硬件处理的基本要求.进来的数据,紧接着治疗头发治疗,这需要在很短的时间,好多毫秒以内,才干 ...
- Cocos2d-x 3.0 红孩儿私人义务教育 - 第一章 熟人Cocos2d-x 3.0project
Cocos2d-x 3.0 红孩儿私家必修 前言: 时光飞逝,每每看到博客上的回复和微博上的鼓舞,总会认为亏欠大家点什么.停下来太久.总是认为不太对劲,哈哈,时习之吧,望以此勉励大家. 红孩儿C ...
- SICP的一些个人看法
网上搜书的时候,看到非常多人将这本书神话. 坦率地说,个人认为这本书过于学术化, 没什么实际project价值.一大堆题目也基本是高中数学竞赛题类似,浪费时间. 软件的核心技术是什么? 1> ...
- 基于 Android 的 3D 视频示例代码
笔者:Mark Liu 下载样本代码 简单介绍 在Android 中,创建一个可以播放视频剪辑的应用很easy:创建一个採用 3D 图形平面的游戏应用也很easy.可是,创建一个可以在 3D 图形对象 ...
- error C2248: “CObject::operator =”: 不可访问 private 员(于“CObject”类声明)
MFC如果编码错误: 演出:error C2248: "CObject::operator =": 不可访问 private 员(于"CObject"类声明) ...