- 浏览: 380994 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (209)
- db2 (4)
- oracle (1)
- sqlserver (16)
- java (54)
- jdbc (3)
- html、js (21)
- MQ、MB (6)
- uml (3)
- 格言 (7)
- 笑话 (3)
- 管理 (5)
- note (10)
- hibernate (1)
- 设计模式 (4)
- win8 (5)
- postgre (2)
- cxf (3)
- MyBatis (4)
- tomcat (9)
- servlet (2)
- ant (2)
- spring (5)
- windows (3)
- linux (7)
- struts2 (2)
- android (2)
- eclipse (1)
- drools (1)
- jmx (2)
- c++ (3)
- html、js、JSP (1)
- mysql (1)
- redis (1)
- 架构 (1)
最新评论
-
onlyor:
灰太狼1991 写道很受用,请教一下博主,mybatis模糊查 ...
MyBatis模糊查询 -
灰太狼1991:
很受用,请教一下博主,mybatis模糊查询是不是和版本也有关 ...
MyBatis模糊查询 -
zzgvictory:
你写的么,很美啊
js 画 玫瑰花 -
onlyor:
里面的算法值得研究啊
js 画 玫瑰花 -
bjqincy:
用 org.joda System.out.println(& ...
Java 获取 一个月有多少周
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 ] ]
)
]
参数
'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 作为行终止符。
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
)
发表评论
-
Windows下Redis的安装使用
2015-03-27 00:29 939Windows下Redis的安装使用 2014-03- ... -
数据库设计三大范式
2015-02-25 14:10 605为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一 ... -
sql server 编码格式
2012-09-10 13:50 1578查看SQLserver编码格式的SQL语句 SELECT ... -
几种数据库同步机制的比较,Log Shipping, Replication 和 Database Mirroring
2012-07-06 15:58 1822在此简单的对于结果进行记录: Replication, ... -
SSIS 教程
2012-06-20 15:35 3361创建新的 Integration Servic ... -
ssis 介绍
2012-06-20 15:25 3878SIS首先是在1997年的SQL Se ... -
大量 创建 关闭 与SQL server 2012 的连接测试
2012-06-15 15:26 1384今天做了一个连接SQL server的小测试结果如下 ... -
SQL server 2012 计算设置UIMODE的适用性失败 0x85640002
2012-06-06 13:52 5060问题: 在安装sql server 2012 的时候,报错 “ ... -
SQL server 2012 安装注意事项
2012-06-01 16:52 2390(1)在安装SQL server 2012时,会t弹出一个提示 ... -
bulk insert 读取远程网络文件时,报拒绝访问的问题
2012-05-30 15:32 5490问题: 在使用BULK INSERT 导入 远程网络的文件时 ... -
sqlserver jar 驱动
2012-05-22 15:45 2214Microsoft JDBC Driver 4.0 for S ... -
删除sqlserver数据库的日志
2012-04-19 12:45 1236sql server 2008 以前的版本 --DUMP ... -
sql server 列索引
2012-04-10 15:22 12921列式索引与传统索引的区别 列式索引将 ... -
sqlserver 实用的功能 upsert
2012-04-06 14:45 1534merge into Target using Sour ... -
九亿计数据记录
2012-04-06 14:39 1008导入数据前d 盘的可用量为310G-- 执行450000次 ...
相关推荐
首先,`BULK INSERT`的基本语法如下: ```sql BULK INSERT FROM '<data_file>' WITH ( [ BATCHSIZE = batch_size ] [ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | code_page } ] [ , DATAFILETYPE = { 'char' | '...
"SQL SERVER BULK INSERT用法" BULK INSERT 是 SQL Server 中的一种 BulkCopy 功能,允许用户快速将大量数据从文本文件或其他数据源导入到数据库表或视图中。下面是 BULK INSERT 的详细用法和参数解释: 基本语法 ...
Bulk Insert的基本语法如下: ```sql BULK INSERT FROM '<file_path>' WITH ( [FIELDTERMINATOR = '<field_terminator>'], [ROWTERMINATOR = '<row_terminator>'], [...] ) ``` 这里,`<table_name>`是目标...
### Bulk Insert导入数据知识点 #### 一、Bulk Insert概述 - **定义**:`BULK INSERT` 是 SQL Server 提供的一种高效数据导入工具,能够帮助用户快速地将大量数据从文本文件导入到数据库表中。 - **优势**: - **...
BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中。 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' } WITH ( [ BATCHSIZE [ = batch_size ] ], [ ...
#### BULK INSERT语法详解: ```sql BULK INSERT table_name FROM 'file_path' WITH ( codepage = 'code_page', FIELDTERMINATOR = 'field_terminator', ROWTERMINATOR = 'row_terminator', FIRE_TRIGGERS ); `...
先将Excel数据转换为CSV格式,然后在SQL*Plus中使用INSERT INTO语句逐行插入数据,或者使用BULK INSERT语法进行批量插入。 - **方法四:使用外部表** 创建一个外部表定义,指定Excel文件作为数据源,然后像操作...
3. **BULK INSERT语法错误**:如果你使用BULK INSERT语句进行批量加载,确保语法正确。例如: ```sql BULK INSERT YourTable FROM 'path\to\your\file.xml' WITH (FORMATFILE = 'path\to\format_file.txt', CODE...
- BULK INSERT语句的基本语法包括指定要导入数据的数据库表名、数据源文件的路径、字段分隔符以及行结束符。 ```sql BULK INSERT 表名 FROM '文件路径' WITH ( FIELDTERMINATOR = '字段分隔符', ...
BULK INSERT 语句的基本语法如下: ```sql BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] table_name FROM 'data_file' WITH ( [ , ] 'option' ) ``` 其中,`database_name` 是数据库的名称...
`BULK INSERT`可以从一个文件中一次性导入大量数据,其基本语法如下: ```sql BULK INSERT 表名 FROM '文件路径' WITH ( FIELDTERMINATOR = '分隔符', -- 数据字段间的分隔符,默认为制表符(TAB) ROWTERMINATOR =...
### 二、BULK INSERT 基本语法 基本的`BULK INSERT`语句格式如下: ```sql BULK INSERT [database_name].[schema_name].[table_name] FROM 'file_path' WITH (data_import_options) ``` - `[database_name]`:...
BULK INSERT 是一个T-SQL语句,用于一次性从外部文件导入大量数据到SQL Server表中。在数据导出时,可以反其道而行之,先用SELECT语句将数据导出到一个文件,再用BULK INSERT导入到其他地方。 2. **SSMS(SQL ...
2. **导入数据**:可以使用`LOAD TABLE`或`BULK INSERT`语句导入数据。如果数据来自CSV文件,`BULK INSERT`语句会更为方便。 3. **图形化工具**:如`Windows环境下Sybase12_5 数据库创建与导入数据库图文教程_...
10. **性能优化**:在大量数据导入时,可以考虑使用BULK INSERT或INSERT INTO...SELECT语句,它们能更高效地处理大数据量的导入。此外,还可以通过事务处理来确保数据的一致性,尤其是在插入过程中遇到错误时。 综...
BULK INSERT是SQL Server中用于大批量数据导入的另一种强大工具,其语法简洁,执行效率高。与BCP相比,BULK INSERT更适用于需要在应用程序中动态执行数据导入的情况,因为它是SQL Server内部的一个语句,可以直接在T...
SQL Server提供了多种方法来导入CSV数据,包括SQL Server Management Studio (SSMS) 的“导入和导出数据”工具,T-SQL语句,以及BULK INSERT命令。 1. 使用SSMS的“导入和导出数据”工具:这是最直观的方法,适用于...
导入Excel数据到SQL Server通常需要使用BULK INSERT或Openrowset函数,或者通过SSIS(SQL Server Integration Services)工具。文件中的Excel表可以先导出为CSV格式,然后使用SQL Server的导入导出工具将其导入到...
SQL提供了多种方法来实现这一功能,包括但不限于BCP命令、`BULK INSERT`语句以及`OPENROWSET`函数等。 #### 二、使用BCP进行数据导入导出 BCP(Bulk Copy Program)是SQL Server提供的一种批量复制工具,它可以...