SQL Server Bulk Insert批量数据导入

SQL SERVER BULK INSERT用法 立即下载

转载自:http://www.2cto.com/database/201109/102689.html

SQL Server的Bulk Insert语句可以将本地或远程的数据文件批量导入到数据库中,速度非常的快。远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP\共享名\路径\文件名"的形式。
 
* 1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法。
 bcp是SQL Server提供的命令行实用工具提供了数据的导出、导入、格式文件导出等功能,导出格式化文件的语法如下:
Sql代码 
bcp 数据库名.用户名.表名 format nul -- 这里的nul必须存在,用于不是导出和导入数据的情况下 
-f 输出的格式化文件名 [-x] -c  -- -x参数指定输出的格式文件为xml格式(默认非xml格式); -c参数指定数据存储方式为字符,并默认指定'\t'作为字段间隔符;'\n'作为行间隔符 
[-t 字段间隔符] [-r 行间隔符号]  -- -t与-r参数可选,用于覆盖-c指定的默认间隔符 
-T -- 指定数据库连接可信,即使用Windows身份登录 
  
* 2. Bulk Insert
 根据格式文件导入数据文件,语法格式如下:
Sql代码 
Bulk insert 数据库名.用户名.表名 
from '数据文件路径' 
with 
( 
formatfile = '格式文件路径', 
FirstRow = 2    --指定数据文件中开始的行数,默认是1 
) 
 
* 3. OPENRORWSET(BULK)函数
 有时,使用OPENROWSET(BULK)函数可以更灵活地选取想要的字段插入到原表或者其他表中,其语法格式为:
Sql代码 
INSERT INTO to_table_name SELECT filed_name_list 
FROM OPENROWSET(BULK N'path_to_data_file', FORMATFILE=N'path_to_format_file') AS new_table_name 
 
  当然,该函数也可以这么使用:
Sql代码 
SELECT field_name_list INTO temp_table_name 
FROM OPENROWSET(BULK N'path_to_data_file', FORMATFILE=N'path_to_format_file') AS new_table_name 
 
 
下面举一个完整的例子:
 
 1)创建数据库、表并填充测试数据,脚本如下:
Sql代码 
-- 创建数据库 
CREATE DATABASE [db_mgr] 
GO 
--创建测试表 
USE db_mgr 
CREATE TABLE dbo.T_Student( 
    F_ID [int] IDENTITY(1,1) NOT NULL, 
    F_Code varchar(10) , 
    F_Name varchar(100) , 
    F_Memo nvarchar(500) , 
    F_Memo2 ntext , 
    PRIMARY KEY  (F_ID) 
)  
GO 
 
--填充测试数据 
Insert Into T_Student(F_Code, F_Name, F_Memo, F_Memo2) select 
'code001', 'name001', 'memo001', '备注001' union all select 
'code002', 'name002', 'memo002', '备注002' union all select 
'code003', 'name003', 'memo003', '备注003' union all select 
'code004', 'name004', 'memo004', '备注004' union all select 
'code005', 'name005', 'memo005', '备注005' union all select 
'code006', 'name006', 'memo006', '备注006' 
  2)我们可以使用SQL Server的master..xp_cmdshell存储过程将CMD的命令传给系统,这样就可以直接在SQL Server的查询处理器中直接输入bcp的命令,而不用切换到命令模式下执行。SQL Server 出于安全目的默认将该存储过程禁用了,开启方法如下:
Sql代码 
--开启xp_cmdshell存储过程(开启后有安全隐患) 
EXEC sp_configure 'show advanced options', 1; 
RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1; 
EXEC sp_configure 'show advanced options', 0; 
RECONFIGURE; 
  
 3)使用bcp导出格式文件:
Sql代码 
EXEC master..xp_cmdshell 'BCP db_mgr.dbo.T_Student format nul -f C:/student_fmt.xml -x -c -T' 
  
 4)使用bcp导出数据文件:
Sql代码 
EXEC master..xp_cmdshell 'BCP db_mgr.dbo.T_Student out C:/student.data -f C:/student_fmt.xml -T' 
truncate table db_mgr.dbo.T_Student -- 将表中数据清空 
  注意:在实际使用过程中,数据文件可以由程序生成,如日志记录等!
 
 5)使用Bulk Insert语句批量导入数据文件:
Sql代码 
BULK INSERT db_mgr.dbo.T_Student 
FROM 'C:/student.data' 
WITH 
( 
    FORMATFILE = 'C:/student_fmt.xml' 
) 
 
 6)使用OPENROWSET(BULK)的例子:
Sql代码 
INSERT INTO db_mgr.dbo.T_Student(F_Code, F_Name) SELECT F_Code, F_Name 
FROM OPENROWSET(BULK N'C:/student_c.data', FORMATFILE=N'C:/student_fmt_c.xml') AS new_table_name -- T_Student表必须已存在 
 
SELECT F_Code, F_Name INTO db_mgr.dbo.tt 
FROM OPENROWSET(BULK N'C:/student_c.data', FORMATFILE=N'C:/student_fmt_c.xml') AS new_table_name -- tt表可以不存在 

作者“rsljdkt”


sql server Bulk Insert命令详细 主要介绍了sql server Bulk Insert命令详细 ,需要的朋友可以参考下 立即下载

相关推荐

Ubuntu 22.04源码编译安装ROS Noetic

Ubuntu 22.04源码编译安装ROS Noetic

Drknown的博客 2万+

(总结) SQL Server Bulk Insert 批量数据导入

SQL Server的Bulk Insert语句可以将本地或远程的数据文件批量导入到数据库中,速度非常的快。远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP\共享名\路径\文件名"的形式。   * 1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法。 bcp是SQL Server提供的命令行实...

2432

envi5.3处理高分二号影像数据详细过程记录

全文根据此篇文章进行数据处理: tm影像辐射定标_高分二号影像数据预处理及裁剪过程 其他参考: 学习笔记---遥感影像辐射定标与大气校正 利用ENVI自带全球DEM数据计算区域平均高程 高分二号数据处理流程(有高分二号的数据信息) GF2有多光谱和全色两个数据,MSS是多光谱的,PAN是全色的,多光谱的分辨率低,全色的高,需要把这两个数据融合,融合之前需要做定标等处理,获取经纬度。 一、多光谱影像处理 1. 辐射定标 以这个为例: 其他路径\2022.4.2...

ligous的博客 5万+

Sql server 中的bulk insert语句导入TXT或CVS文件数据(字段数量相同和不相同导入方法)

Sql server 中的bulk insert语句导入TXT或CVS文件数据(字段数量相同和不相同导入方法)

lizaijinsheng的专栏 924

pynq-z2 HLS开发

定制Overlay一.用HLS生成一个定制IP功啊啊是合理的创建标题,有助于目录的生成如何改变是式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 一.用HLS生成一个定制IP ...

qq_38769280的博客 4156

LTE随机接入实战:如何通过PRACH前导码优化小区覆盖半径(附计算公式)

本文深入探讨了LTE网络中PRACH前导码格式对小区覆盖半径的关键影响。通过解析不同前导码格式(如Format 0-3)的物理参数与覆盖能力,提供了核心计算公式与实战Python脚本,指导网络工程师根据覆盖需求、环境多径和容量等因素,科学选择前导码格式以优化边缘用户接入成功率,实现精准的网络规划与优化。

qq_27496129的博客 574

bulk insert 在mssql中使用

  从远程数据文件中批量导入 若要使用 BULK INSERT 从其他计算机中大容量导入数据,必须在两台计算机之间共享数据文件。 指定共享数据文件时,请使用它的通用命名约定 (UNC) 名称,其一般形式为 \\服务器名\共享名\路径\文件名。 此外,用来访问该数据文件的帐户必须具有读取远程磁盘上的文件所需的权限。 首先 共享远程服务器文件夹 并设置为所有权 以下附上代码: BULK ...

weixin_33896726的博客 250

开源数显表

开源数显表,广泛应用于车床、铣床、磨床、镗床、火花机、线切割等。市面上此类液晶数显表多数都是基于此项目。 一、基本配置 硬件 主控:STM32F407VGT6 LCD:群创AT070TN92 显示驱动:RA8875 光栅尺:3 x 输入(X/Y/Z) 串口:1 x MAX3232 继电器:2 x 输出 存储:AT24C64 模拟输入:LM324C 电源:AC 220V 软件 工程版本:Keil 5 STM32库:V1.4.0 图形界面:uCGUI 多语言支持:中文、英文 二、项目文

m0_70934529的博客 435

sqlserver大批量导入数据,从其他库导入,解决字段不一致问题

t后面跟的是数据的分隔符 这是个坑 默认是/t /n 如果数据中含有换行符导入的时候就会失败 所以这里随便写了一个参数,-r, 导入数据的时候就不会失败。由于现有项目想从别的系统导入一批新数据,数据量庞大且字段不一致,可以使用BULK来解决。现在要从B库中将trk_invd表的数据导入到A库中的trk_invd表。建立中间视图 trk_invd_v 查询出自己想要导出的数据。根据A库中的结构导出中间视图的数据。A库中的表比B表多了两个字段。目标库 A 数据源库 B。最后结束的时候把配置关闭。

正的博客 727

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案 简单统计法: 这个原则有个条件:数据需要服从正态分布。 在3倍标准差原则下,异常值如超过3倍标准差,那么可以将其视为异常值。正负3的概率是99.7%,那么距离平均值3之外的值出现的概率为P(|x-u| > 3) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。 分位数法(箱图法、箱型法): 并不是说从高斯分布中抽出的所有数据都符..

data+scenario+science+insight 1795

裸眼3D技术发展与应用前景

这项技术利用传感器或摄像头实时监测观众的位置和视角,然后根据观众的位置信息动态调整投射的图像,确保不同位置的观众都能看到一致的3D效果。这种技术不仅可以在电影院和家庭影院中应用,还可以用于虚拟现实设备和大型展览等领域。裸眼3D呈现是一种不需要佩戴任何特殊设备(如3D眼镜或头盔)即可观看到3D效果的技术。这种技术近年来得到了快速发展,为观众带来了更加沉浸式的视觉体验。总之,裸眼3D呈现技术的发展为观众带来了更加真实、沉浸式的视觉体验。随着技术的不断进步和创新,相信未来裸眼3D将会在更多领域得到应用和推广。

学无止境 1996

MSSQL数据批量插入优化详细

序言  现在有一个需求是将10w条数据插入到MSSQL数据库中,表结构如下,你会怎么做,你感觉插入10W条数据插入到MSSQL如下的表中需要多久呢? 或者你的批量数据是如何插入的呢?我今天就此问题做个探讨。   压测mvc的http接口看下数据 首先说下这里只是做个参照,来理解插入数据库的性能状况,与开篇的需求无半毛钱关系。 mvc接口代码如下: public bool Add(...

weixin_34221276的博客 259

解决开着代理情况下pip或魔搭下载失败

最近由于经常配环境导致,老是要来回切clash关掉代理,非常的不方便如下面的,魔搭模型下载失败如下面的,pip换源后下载失败。

风吹落叶的博客 2950

SQL Server中采用BULK INSERT实现大数据量文本文件批量导入

今天做了一个基于SQL Server的文本文件批量导入工具,和大家分享一下心得。  方案一: 遍历文本文件,解析每一行,形成SQL语句后向数据库插入。 方案二 遍历文本文件,解析每一行,将SQL语句保存到文本文件然后执行。 方案三 使用SQL Server Bulk Insert 功能披露导入数据,然后在数据库中做数据处理。 刚开始用方案一做的,50MB文本文件导入大约20...

eyesmore's tech life 370

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SQL Server Bulk Insert 批量数据导入

SQL Server的Bulk Insert语句可以将本地或远程的数据文件批量导入到数据库中,速度非常的快。远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP\共享名\路径\文件名"的形式。   * 1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法。 bcp是SQL Server提供

D-Boy的专栏 8383

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用BULK INSERT大批量导入数据 SQL SERVER

使用BULK INSERT大批量导入数据 SQL SERVER 开门见山,直接以例子介绍: CREATETABLE[dbo].[course]([id][int]NULL,[name][nvarchar](50)NULL,[CourseType][nvarchar](50)NULL,[Course][float]...

weixin_34123613的博客 158

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Bulk Insert命令详细

<br />Bulk Insert命令详细 <br /><br />BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中。 <br />语法:Sql代码 BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }       WITH  (           [ BATCHSIZE [ = batch_size ] ],               [ CHECK_CONSTRAINTS

jackmacro的专栏 8万+
上一篇: SQLSERVER 存储过程 语法
下一篇: C#与C++的互操作
ManFred2ManFred
博客等级 码龄23年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值