首页 > 其他分享 >bulk insert批量数据导入

bulk insert批量数据导入

时间:2022-12-08 10:38:30浏览次数:34  
标签:insert 文件 bulk 导入 分隔符 SmsSend txt


在SQL Server中,BULK INSERT是用来将外部文件以一种特定的格式加载到数据库表的T-SQL命令。该命令使开发人员能够直接将数据加载到数据库表中,而不需要使用类似于Integration Services这样的外部程序。虽然BULK INSERT不允许包含任何复杂的逻辑或转换,但能够提供与格式化相关的选项,并告诉我们导入是如何实现的。BULK INSERT有一个使用限制,就是只能将数据导入SQL Server。

 

 

1、  bulk insert需要具备三个条件

a)         单表数据导入

b)         存放数据的文件

c)         描述存放数据的文件格式的格式化文件

d)         Bulk insert语法

 

2、  Bulk insert可以对单表数据进行批量导入,速度非常快

 

3、  txt文件存放数据,列与列之间,组与组之间采用不同的分隔符分隔,

如:

Aaa{,}bbb{,}ccc{,}ddd

Xxx{,}yyy{,}zzz{,}ddd

以上,列与列的分隔符为{,},组与组的分隔符为\r\n(注意:分隔符最好要比较特殊,以免造成错误)

 

4、  xml文件

如:

<?xmlversion="1.0"?>

<BCPFORMATxmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <RECORDxmlns=""> <!—记录-->

    <FIELDID="1"xsi:type="CharTerm"TERMINATOR="{,}" />   <!—第几列、数据类型、结束符-->

    <FIELDID="2"xsi:type="CharTerm"TERMINATOR="{,}" />

    <FIELDID="3"xsi:type="CharTerm"TERMINATOR="{,}" />

    <FIELDID="4"xsi:type="CharTerm"TERMINATOR="{,}" />

    <FIELDID="5"xsi:type="CharTerm"TERMINATOR="{\r\n}" />    <!—注意最后一列的结束符,一般为\r\n-->

  </RECORD>

  <ROWxmlns="">        <!—对上面的列命名并设置数据类型-->

    <COLUMNSOURCE="1"NAME="receivePhoneNum"xsi:type="SQLVARYCHAR" /> <!—第几列(对应上面的第几列)、列明、数据类型-->

    <COLUMNSOURCE="2"NAME="preSendTime"xsi:type="SQLDATETIME" />

    <COLUMNSOURCE="3"NAME="addTime"xsi:type="SQLDATETIME" />

    <COLUMNSOURCE="4"NAME="smsContentId"xsi:type="SQLINT" />

    <COLUMNSOURCE="5"NAME="shortName"xsi:type="SQLVARYCHAR" />

  </ROW>

</BCPFORMAT>

 

5、  Bulk insert语法

如:

insert into dbo.smsSend_t_send(receivePhoneNum, preSendTime, addTime, smsContentId, shortName)

select receivePhoneNum, preSendTime, addTime, smsContentId,

from openrowset(

bulk 'D:\SmsSend\hz.txt'

,formatfile='D:\SmsSend\formatfile.xml'

)txt

 

         D:\SmsSend\hz.txt  是数据存放的文件的路径

    D:\SmsSend\formatfile.xml   是解析上面文件的格式化配置文件

 

 

 

 

 

 

 

标签:insert,文件,bulk,导入,分隔符,SmsSend,txt
From: https://blog.51cto.com/u_15906220/5920644

相关文章

  • postgresql数据库导入导出
    一、常规操作1、进入数据库psql-hlocalhost-p5432-Ukong2、查看库kong=#\lListofdatabasesName|Owner|Encodin......
  • mysql数据库导入导出
    1源数据库导出数据 这一步将导出结构和数据到一个.sql文件中2导入到空数据库中将上一步导出的.sql文件传到要服务器某路径下,比如/data/sqldata/devself.sql然后在......
  • SiteFactory支持ppt导入
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordAction......
  • SiteFactory支持ppt一键导入
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • SiteFactory支持ppt自动导入
    ​ 自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑......
  • SpringBoot实现Excel导入导出,性能爆表,用起来够优雅
    简介:大家好,我是枫哥,......
  • EasyExcel实现批量导入数据库
    场景说明Java实现Excel批量导入数据库这个是之前已经实现的方式,细节点可以看之前的文章,主要是把之前使用POI的Workbook,替换为EasyExcel,提升性能代码1、继承Anal......
  • (转)Python中动态导入对象importlib.import_module()的使用
    背景一个函数运行需要根据不同项目的配置,动态导入对应的配置文件运行。解决文件结构a#文件夹│a.py│__init__.pyb#文件夹│b.py│__init__.py├─c#文件夹│......
  • 记录一个jmeter导入附件的工作过程
    系统性能测试,需要模拟生产环境需求搭建应用服务和建造压测数据,最大限度的还原生产环境,使系统性能测试的指标更加标准、真切。如某项目财务系统中的薪资管理模块做工资计算......
  • UE4学习笔记23——【动画】Mixamo自动绑骨并导入虚幻4
    P61.Mixamo自动绑骨并导入虚幻4P61需要插件“MixamoAnimationRetargeting”(200多块......)(这节课就简单听听,以后用到了再看)(桥豆麻袋!不用买这个插件,这节课的东西也能......