以用户指定的格式复制一个数据文件至数据库表或视图中。
2006-04-23 07:41
701 查看
BULK INSERT
以用户指定的格式复制一个数据文件至数据库表或视图中。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 决定的。只在大容量复制操作期间控制锁会减少表上的锁争夺,极大地提高性能。
示例:
将iis日志文件导入数据库
1#Software: Microsoft Internet Information Services 5.1
2#Version: 1.0
3#Date: 2006-04-22 22:56:28
4#Fields: date time c-ip cs-username cs-method cs-uri-stem sc-status sc-bytes cs-version cs(User-Agent) cs(Referer)
52006-04-22 22:56:28 127.0.0.1 - GET /Cepsmis/ 302 287 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+Maxthon;+.NET+CLR+1.1.4322) -
1BULK INSERT pubs..ex FROM 'C:\WINDOWS\system32\Logfiles\W3SVC1\exyymmdd.log'
2WITH (
3 FIRSTROW = 2,
4 DATAFILETYPE = 'char',
5 FIELDTERMINATOR = ' ',
6 ROWTERMINATOR = '\n'
7)
相关文章推荐
- 从数据库得到数据导出指定格式的xml文件,上传到NC接口,返回回执到本地一个xml文件(接上篇补充)
- 从数据库得到数据导出指定格式的xml文件,上传到NC接口,返回回执到本地一个xml文件
- 把数据库中所有的数据复制到一个文件中,值之间放置“,”,每一行数据都另起一行,并且把所有的值都放在“"”之间
- SQL : 一个存储过程,用于向指定的MS SQL Table中导入CSV 格式的文件数据
- mysql从只有一个备份文件(多个数据库的备份)中恢复数据到指定数据库
- 将数据库内表中的数据导出到txt文档中,并且显示一个对话框,提示用户保存文件的位置
- oracle 数据复制(不同数据库、不同用户,无中转文件) impdp
- js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
- mysql使用navicat给指定用户授权查看数据库中的某些数据表
- 批处理 把文本中指定的文件从一个目录复制到另外一个目录
- 通过试验探索Access 2000/XP 数据库的最佳 NTFS 权限设置Microsoft Jet 数据库引擎打不开文件'D:\wwwroot\test\data\'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
- [置顶] 【mysql 数据迁移】mysql中同一服务器,要从一个数据库里复制一个表到另一个数据库
- 将一个sql文件在远程的数据库执行、导入其数据
- oracle 数据备份 数据传输 一个数据库复制到另外一个数据库 工具
- 同一个数据库实例,不同用户下多表创建视图,Hibernate完成ORM映射,Spring整合,后台实现
- 一个数据库的表中数据复制到另一个数据库表中
- Oracle 数据库 数据文件 表 表空间 用户的关系
- 做了一个浏览指定文件格式的 TreeView