广告
返回顶部
首页 > 资讯 > 数据库 >SQL Server Bulk Insert如何批量数据导入
  • 184
分享到

SQL Server Bulk Insert如何批量数据导入

2024-04-02 19:04:59 184人浏览 安东尼
摘要

小编给大家分享一下SQL Server Bulk Insert如何批量数据导入,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

小编给大家分享一下SQL Server Bulk Insert如何批量数据导入,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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表可以不存在 

以上是“SQL Server Bulk Insert如何批量数据导入”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: SQL Server Bulk Insert如何批量数据导入

本文链接: https://www.lsjlt.com/news/71664.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL Server Bulk Insert如何批量数据导入
    小编给大家分享一下SQL Server Bulk Insert如何批量数据导入,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • 使用BULK INSERT大批量导入数据 SQLSERVER
    要使用BULK INSERT在SQL Server中导入大批量数据,您需要按照以下步骤进行操作:1. 创建一个包含与目标表相同列的格...
    99+
    2023-08-17
    SQLSERVER
  • 如何使用BULK INSERT大批量导入数据SQLSERVER
    这篇文章给大家分享的是有关如何使用BULK INSERT大批量导入数据SQLSERVER的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:  CREAT...
    99+
    2022-10-19
  • SqlServer中BULK INSERT用法简介,批量插入数据
    BULK INSERT是SqlServer中用于批量插入数据的命令。它可以将来自外部文件的数据快速加载到表中,比逐行插入数据的方式更...
    99+
    2023-09-16
    sqlserver
  • SQL Server怎么批量导入和导出数据
    在SQL Server中,可以使用bcp命令行实用程序批量导入和导出数据。以下是一些示例:1. 批量导入数据:使用bcp命令行实用程...
    99+
    2023-10-10
    SQL Server
  • 怎么在SQL Server数据库中批量导入数据
    今天就跟大家聊聊有关怎么在SQL Server数据库中批量导入数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、使用Select In...
    99+
    2022-10-18
  • SQL Server批量插入数据案例详解
    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Serv...
    99+
    2022-11-12
  • SQL Server导入大量数据的方法
    本篇内容主要讲解“SQL Server导入大量数据的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server导入大量数据的方法”吧!要实现对海量数...
    99+
    2022-10-18
  • Redis如何批量导入数据
    Redis批量导入数据的示例:准备一个redis protocol的文件,通过java程序来输出的,代码如下:<<RedisBatchTest>>public class RedisBatchTe...
    99+
    2022-10-23
  • SQL Server批量插入数据的方法是什么
    在 SQL Server 中,有几种方法可以进行批量插入数据:1. 使用 INSERT INTO SELECT 语句:可以在...
    99+
    2023-09-16
    SQL Server
  • 如何将批量数据导入mysql数据库
    这篇文章将为大家详细讲解有关如何将批量数据导入mysql数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如何将批量数据导入mysql数据库1.创建一个e...
    99+
    2022-10-18
  • phpmyadmin如何批量导入excel数据到mysql
    这篇文章主要介绍phpmyadmin如何批量导入excel数据到mysql,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先我们得到了一个excel表,里面有很多需要我们导入的数据删...
    99+
    2022-10-18
  • php如何实现sql server数据导入到mysql数据库
    这篇文章主要介绍了php如何实现sql server数据导入到mysql数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何实现sql server数据导入到mysql数据库文章都会有所收获,下面我们...
    99+
    2023-07-05
  • Excel数据如批量导入navicat的方法
    这篇文章主要介绍了Excel数据如批量导入navicat的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。打开电脑上的Navicat,点击左上...
    99+
    2022-10-18
  • SQL Server 海量数据导入的最快方法是怎样的
    SQL Server 海量数据导入的最快方法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最近做某项目的数据库分析,要实现对海量数...
    99+
    2022-10-18
  • Java API如何实现向Hive批量导入数据
    Java API实现向Hive批量导入数据 Java程序中产生的数据,如果导入oracle或者mysql库,可以通过jdbc连接insert批量操作完成,但是当前版本的hive并不支...
    99+
    2022-11-12
  • 如何使用python批量导入数据进Elasticsearch中
    本文小编为大家详细介绍“如何使用python批量导入数据进Elasticsearch中”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用python批量导入数据进Elasticsearch中”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-06-05
  • plsql如何批量导出数据
    在PL/SQL中,可以使用游标和循环语句来批量导出数据。以下是一种可能的方法:1. 创建一个游标,用于查询需要导出的数据。2. 使用...
    99+
    2023-09-08
    plsql
  • SQL Server中怎么实现数据行批量插入脚本的存储
    这篇文章给大家介绍SQL Server中怎么实现数据行批量插入脚本的存储,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。本存储运行于SQL Server 2005或以上版本,T-SQL代...
    99+
    2022-10-18
  • 基于Java SSM如何实现Excel数据批量导入
    今天就跟大家聊聊有关基于Java SSM如何实现Excel数据批量导入,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。导入Maven依赖<dependency>&...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作