当前位置: 移动技术网 > IT编程>开发语言>.net > 从TXT文本文档向Sql Server中批量导入数据

从TXT文本文档向Sql Server中批量导入数据

2019年04月26日  | 移动技术网IT编程  | 我要评论

火箭vs开拓者视频,伦理电影下载,内蒙老兵打新兵视频

下面我们通过以下的简单的sql语句即可实现数据的批量导入,代码如下:

      bulk insert id


      from 'g:\文档\test.txt'


      with ( fieldterminator=',', rowterminator='\n')

注意:1) bulk insert 为sql server 中一个批量插入的操作

      2)test 为上边定义的表,即我们的数据将要插入的表

      3) ‘c:\users\olive\desktop\test.txt’为数据源文件所在磁盘上的物理路径

      4)with 相当于一些插入的附属条件,可以起这里添加一些约束限制条件等

      5) fieldterminator=’,’字段的分割符为”,”一般的txt文本数据源的字段分隔都为逗号,当然也可以为其他,比如”|”

      6) rowterminator=’\n’各条信息间的分割符为’\n’,一般的txt文本数据源的信息间的分割都是换行符,即一条信息占一行,也可以用其他格式如:”|\n”

 

三、bulk insert详解

这里只是大致上讲了一下bulk insert的用法,因为我们所涉及的表结构比较简单,表之间的关联也不是很大,所有就只是简单的用了下bulk insert。事实上bulk insert的功能还是比较强大的。上边讲了可以在with{}条件中加入一些参数以满足不同的需要。下面我们看一下微软官方的关于bulk insert 的用法介绍

bulk insert
   [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_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 ]
   [ [ , ] errorfile = 'file_name' ]
    )]
这里我们主要看with中的一些参数:(部分)

1)       batchsize : 指定批处理中的行数

2)       check_constraints:启用约束检查,指定在大容量导入操作期间,必须检查所有对目标表或视图的约束。若没有 check_constraints 选项,则忽略所有 check 和 foreign key 约束,并在该操作后将表的约束标记为不可信。始终强制使用 unique、primary key 和 not null 约束。

3)       fire_triggers

指定将在大容量导入操作期间执行目标表中定义的所有插入触发器。如果为针对目标表的 insert 操作定义了触发器,则每次完成批处理操作时均激发触发器。

4)       keepnulls

指定空列在大容量导入操作期间应保留 null 值,而不插入列的任何默认值

5)       order ( { column [ asc | desc ] } [ ,...n ] )

指定如何对数据文件中的数据排序。如果根据表中的聚集索引(如果有)对要导入的数据排序,则可提高大容量导入的性能

6)       errorfile ='file_name'

指定用于收集格式有误且不能转换为 ole db 行集的行的文件。这些行将按原样从数据文件复制到此错误文件中。

---------------------
原文:https://blog.csdn.net/xuemoyao/article/details/8506338

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网