zoukankan      html  css  js  c++  java
  • 笔记整理之 Bulk Insert

    之前2篇日志整理了BCP大致的用法,这次整理一下它的兄弟 Bulk Insert 的写法以及和bcp那边的结合的用法。

    首先,Bulk Insert 语句要在连接了Sql Server 服务器之后才执行的,和bcp 不一样,bcp 是以命令来执行,而Bulk Insert 相当于一个执行一个操作语句

    然后这里列举一下Bulk Insert 的用法,和对应bcp 的参数的对应关系。

    bulk insert t4
    from 'D: 3.txt'
    with(
    DataFileType = 'char' -- DataFileType选项支持 char|native|widechar|widenative 相对应的bcp接口就是 -c|-n|-w|-N
    ,BatchSize = 1 --BatchSize 相当于bcp里面的 -b 选项,每次交互多少行数据
    ,FieldTerminator = ' ' --FieldTerminator 相当于bcp 里面的-t选项,标识同一行数据里面的列分割
    ,RowTerminator = ' ' --RowTerminator 相当于bcp里面的 -r 选项,标识不同行数据里面的行分割
    ,ForMatFile = 'D:format.xml' --FormatFile 相当于bcp 里面的 -f 选项,使用配置文件进行批量导入数据,将适用以下情况
    --(1、文件的列比表的列多 2、列顺序和数据库列顺序不一致 )
    ,KeepIdentity --KeepIdentity 相当于bcp 里面的 -E 选项,表示保留导入数据的标识列的数据
    ,KeepNulls --KeepNulls 相当于 bcp 里面的 -k选项,保留导入数据的Null值,不转换成列的默认值
    ,FirstRow = 2 --FirstRow 相当于 bcp 里面的 -F 选项,表示开始导入的首行
    ,LastRow = 4 --LastRow 相当于 bcp 里面的 -L 选项,表示导入的尾行
    ,Check_Constraints --是否检查表中约束,如果没有该选项,那么忽略
    ,codePage = '850' --相当于bcp 里面的-C 选项
    )

    如果之前用过bcp 这个应该也没有什么大的问题。

    以上with 之后的所有选项其实都可以不填的,如果要填的话,可以参考官网或者我后面的注释。

    其中一个比较注意的是formatfile 这个选项,如果导入的文件和目标的表的列顺序或者列数不一致的时候,那么就需要使用formatflie 来告诉数据库数据怎么摆位,如果是想省点事可以先使用bcp 来生成一个格式化文件先,无论是非xm文件还是xml文件都可以支持。生成之后修改对应的项即可。

    另外,bcp 里面是没有Check_Constraints 这个选项的,但是BulkInsert 这里可以支持,使用这个选项也可以更好地保证导入数据的数据完整性。

    其他的参数和选项,都和bcp里面找到对应的方法,应用也类似。这里也没必要再次重复了~

    本次分享到这里

     

  • 相关阅读:
    用pygame实现打飞机游戏-3-显示飞机和控制飞机移动
    用pygame实现打飞机游戏-2-检测键盘
    最好听的钢琴曲排行榜 世界上最好听的钢琴曲
    使用gulp构建nodejs,你只需要记住5个函数
    Linux删除文件夹命令
    前端构建工具gulpjs的使用介绍及技巧
    HTML5 LocalStorage 本地存储
    jquery新窗口打开链接
    Sublime text 3 如何格式化HTML代码
    jquery滚动条加载数据
  • 原文地址:https://www.cnblogs.com/Gin-23333/p/5502109.html
Copyright © 2011-2022 走看看