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 )  

[SQL] view plaincopyprint?

 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 )  
 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 )

参数:
‘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_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 时使用,导致整个数据文件作为单个事务发送给服务器。服务器根据 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 作为行终止符。

Sql代码

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

[SQL] view plaincopyprint?

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 参数。

Sql代码

 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         )]   

[SQL] view plaincopyprint?

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

下面写个个简单的应用例子

Sql代码

1 bulk insert xsxt.dbo.tabletest from ‘c:/data.txt‘
2  with(
3    FIELDTERMINATOR=‘,‘,
4    ROWTERMINATOR=‘/n‘
5 )  
时间: 2024-11-25 11:08:16

Bulk Insert 高效快速插入数据的相关文章

BULK INSERT如何将大量数据高效地导入SQL Server

转载自:http://database.51cto.com/art/201108/282631.htm BULK INSERT如何将大量数据高效地导入SQL Server 本文我们详细介绍了BULK INSERT将大量数据高效地导入SQL Server数据库的方法,希望本次的介绍能够对您有所帮助. AD:WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统 在实际的工作需要中,我们有时候需将大量的数据导入到数据库中.这时候我们不得不考虑的就是效率问题.本文我们就介绍了一种将大量数据高效地

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

将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INSERT schema_name . table_name FROM 'data_file' WITH ( FIELDTERMINATOR = 'field_terminator', ROWTERMINATOR = 'row_terminator', DATAFILETYPE=‘WideChar’ )

【数据库MSSQL2008】使用表值参数快速插入数据

项目中需要将解析原始文件获得的10W左右的数据插入数据库,如果使用原始的sql语句"insert into",无论是循环插入还是批量插入,不是效率慢就是系统内存消耗殆尽,无法满足需求. 经网上查阅,发现mssql从2008起开始,数据库支持以表值参数的方式批量插入数据,使用该方式,一次性插入10W条数据也不过是3-5秒钟的事情,一切开始变得美好起来~ 使用表值参数批量插入数据的步骤和要点: 1.数据源需要是DataTable形式,且字段顺序必须和相应的数据库的数据表的字段属性.顺序一致

SqlBulkCopy 快速插入数据

[转]本文来自http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy(v=vs.80).aspx 此代码用于演示仅使用 SqlBulkCopy 的语法.如果源表和目标表都在同一个 SQL Server 实例中,则使用 Transact-SQL INSERT … SELECT 语句复制数据会更方便快捷. using System.Data.SqlClient; class Program { static

SQL Bulk Insert 快速插入

SQL INSERT INTO 语句 INSERT INTO 语句用于向表中插入新记录. SQL INSERT INTO 语法 INSERT INTO 语句可以有两种编写形式. ① 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可: INSERT INTO table_nameVALUES (value1,value2,value3,...); ② 第二种形式需要指定列名及被插入的值: INSERT INTO table_name (column1,column2,column3,..

C#_批量插入数据到Sqlserver中的四种方式

先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记录的ID的值然后再进行加1运算要少.而如果存在索引的情况下,每次插入记录都会进行索引重建,这是非常耗性能的.如果表中无可避免的存在索引,我们可以通过先删除索引,然后批量插入,最后再重建索引的方式来提高效率. create database CarSYS;    go    use CarSYS;  

Bulk Insert命令具体

BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: Sql代码 BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' } WITH  ( [ BATCHSIZE [ = batch_size ] ], [ CHECK_CONSTRAINTS ], [ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ], [ D

Bulk Insert具体订单

BULK INSERT与用户指定的格式的数据文件复制到数据库表或视图. 语法: Sql代码 BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' } WITH  ( [ BATCHSIZE [ = batch_size ] ], [ CHECK_CONSTRAINTS ], [ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ], [ DAT

TSql bulk insert 用法

语法,参见 MSDN URL:https://msdn.microsoft.com/zh-cn/library/ms188365.aspx BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' [ WITH ( [ [ , ] BATCHSIZE = batch_size ]    --BATCHSIZE指令来设置在单个事务中可以插