sql Server 批量插入以及sql Server数据导入到mysql sqlServer数据每10000条导出一个文件

百万级数据在Excel和Sql数据库之间相互导入、导出 百万级数据在Excel和SqlServer之间相互导入导出。 立即下载

1:sql Server平时接触不多,最近只是在上面造大量数据和导出使用了下

批量造几万条数据

假如一个表

  1. CREATE TABLE [dbo].[userInfo] (   
  2.  [userID] [int] IDENTITY (1, 1) NOT NULL ,   
  3.  [roleType] [int] NULL ,   
  4.  [groupID] [int] NULL ,   
  5.  [userCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,   
  6.  [userName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,   
  7.  [text1] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,   
  8.  [text2] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,   
  9.  [text3] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL    
  10. ) ON [PRIMARY]   
  11. GO  
而后进行大量数据插入

DECLARE @userCode VARCHAR(30)   
DECLARE @userName VARCHAR(30)   
  
DECLARE @userCode_base VARCHAR(30)   
DECLARE @count INTEGER  
DECLARE @index INTEGER  
DECLARE @rand1 INTEGER  
DECLARE @rand2 INTEGER  
SET @userCode_base='qs_'  
SET @userName='userName'  
SET @count=100000   
SET @index=10000   
  
WHILE @index<@count  
BEGIN  
 SET @userCode=@userCode_base+CONVERT(VARCHAR,@index)   
 SET @rand1=convert(int,rand()*5)   
 SET @rand2=convert(int,rand()*5)   
 INSERT INTO userInfo (userCode,roleType,groupID,userName,text1,text2,text3)   
 VALUES (@userCode,@rand1,@rand2,@userName,'aokei kaol jof','','aokei kaol jof')   
    
 SET @index=@index+1   
END  
GO  

这些也是从其他同行那抄来的,顺便给自己一个便签记录下

2:最近还一个比较头疼的是sqlServer数据移植到mysql,数据少嘛还好办,关键丫的几十万上百万的数据,让我情何以堪,反正使用odbc数据源我是没搞定,网上也有好多牺牲的说法,我也没辙,就使用老土的先导出CSV,再导入到mysql,唉。。。关键在于,几十万上百万万一一下子导出错了那不就悲剧了,就想到每5万或者10万作为一个文件导出在那,再一个个导进去,这样毕竟降低点风险。这里又来了,怎么导出一个个文件呢,我去找找。。。。回来再补充。。。嘎嘎,不过我一次性导入了38万条了,导入的时候我就在那祈祷啊,千万不要出错,千万不要出错。

找了下还算找到个方法

首先最好建一张临时表吧,这样尽量不要操作原表数据,把原表数据复制到临时表,此时为了方便排序以及导出,加了一个字段id,就是这张临时表结构比原表多了个字段ID,里面放着序号,这样利于下面导出操作。

我例子呢,就是上面的userInfo的表,由于表中userid就是一个自增的字段,我暂且就用userid当作临时表的id

我就直接操作userInfo表

捣鼓半天,找到个靠谱的SQL:

declare   @i   int 
declare   @sqlstr   nvarchar(1000) 
set @i=0
while @i*10000<100*1000
begin
set @sqlstr='bcp "select top 10000 * from testdb.dbo.userInfo where userid>='+cast(@i*10000 as varchar(10))+' and userid<'+cast(@i*10000+10000 as varchar(10))+'" queryout "d:\test\'+cast(@i as varchar(10))+'.txt" -c -SServername -Uusername -Ppassword'
exec master.dbo.xp_cmdshell @sqlstr
set @i=@i+1
end

就是每一万条导出一个txt文件,执行中呢,报错‘SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问’,又找了下

EXEC sp_configure N'show advanced options', N'1' 
RECONFIGURE WITH OVERRIDE
EXEC sp_configure N'xp_cmdshell', N'1'
RECONFIGURE WITH OVERRIDE 
EXEC sp_configure N'show advanced options', N'0' 
RECONFIGURE WITH OVERRIDE

修改下配置,

再执行,有戏,出来了。总算收到效果。

1 0 2 qs_10000 userName aokei kaol jofaokei kaol jof
2 0 1qs_10001userNameaokei kaol jofaokei kaol jof
3 3 0qs_10002userNameaokei kaol jofaokei kaol jof
4 3 3qs_10003userNameaokei kaol jofaokei kaol jof
5 0 0qs_10004userNameaokei kaol jofaokei kaol jof

截取的一段,就是没有逗号分隔的,导出CSV也是一样,后期处理吧,这样出来已经不错了。

这样是以制表符分隔每一个字段的,我又把表清空,再选择这个txt导入,导入时候到第二步映射的时候,映射到哪张表,后面编辑打开,勾选启用标识列插入”不然导入不进去。

这是将数据还原到sqlServer,下面试着就把这些txt导入到mysql \t 是制表符

mysql> load data infile 'd:/0.txt' into table user fields terminated by '\t' optionally enclosed by '' lines terminated by '\r\n';

Query OK, 999 rows affected (0.06 sec)
Records: 999  Deleted: 0  Skipped: 0  Warnings: 0

OK,完成,还是可以导入的。

好了,这样一来,借助这种比较笨拙的方法,还是能够完成数据的导入导出,以及不同数据库之间的操作,sqlserver对Oracle是有数据源接口的,这个就不扯了。

数据库大量数据导出Excel 应客户要求,导出数据库中的数据为Excel,只在一个Sheet中,Excel中的内容要与数据库里的内容一致(主要针对日期型数据)。 由于之前接触过POI,对POI的一些特性还是有一定的了解的,因此顺其自然的用POI去解决这个问题。POI3.8版本之前的版本处理大量数据的导出Excel效果不是很理想,主要在与Excel2003版本单个Sheet的行限制为65536,大量数据的导出得分多个Sheet,针对这一点,客户就不会满意。其次,在实验过程中,大数据量的导出很容易引发内存溢出,调整JVM的内存大小治标不治本。很多人建议保存为.CSV格式的文件。不过,.CSV方式导出也存在问题:首先,如果用excel来打开csv,超过65536行的数据都会看不见,这是Excel程序的问题。其次,如果要导出一个身份证号码,手机号码等纯数字构成的字符串,在excel中打开csv时,这些字段很容易被识别成数字,被误处理。 POI3.8以后的版本支持Excel2007高版本,单个Sheet的行数可达到百万,针对内存溢出问题,可通过设置内存数据保留数,每当计数到指定的数值时,刷新数据到硬盘,清理内存。 立即下载

相关推荐

大量数据插入 sql语句

大量数据插入的sql方法,大量数据插入的sql方法,大量数据插入的sql方法

Mysql 导出 sql的执行结果到 csv文件

需求: 1. 执行某 SQL 的结果; 2. 将结果导出到 csv文件; 3. 通过命令行执行; 解决方案 mysql -A db_name -h host_name -u user_name -p -ss -e "SELECT * FROM table_name LIMIT 100;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > apps.csv sed 部分内容可以省略 -A 指定数据库; ...

jackl 1745

手把手教你用STM32单片机DIY一个简易PLC(附完整电路图与PCB文件)

本文详细介绍了如何利用STM32单片机DIY一个简易PLC控制器,涵盖硬件设计、电路图解析、PCB布局优化及固件框架实现。通过完整的电路图和PCB文件,帮助读者从元器件选型到工业级优化,逐步构建可靠的PLC系统,特别适合工业自动化爱好者和学习者实践。

weixin_42527160的博客 571

sqlserver转到mysql中文乱码_(转)sqlserver字符集问题(中文出乱码,排序错误等)...

转自:https://www.cnblogs.com/taoshengyujiu/p/9089056.html在创建sqlserver数据库时未指定排序字符集,databases则会使用instances的排序规则。为了支持中文,需要设置成Chinese_PRC_CI_AS。(1)通过sql脚本修改--修改现有databases的排序规则 ALTER DATABASE mydb COLLATE ...

weixin_42370434的博客 966

【UE5】多用户协同编辑实战:从配置到实时协作

本文详细介绍了在虚幻引擎5中配置和使用多用户协同编辑功能的完整流程。从启用Multi-User Editing插件、配置UDP Messaging网络通信,到启动服务器、创建会话并实现实时协作,提供了从环境准备到实战协作的清晰指南。文章还分享了资产同步、场景分批、对象锁定等实用技巧,并强调了网络配置与版本一致性等关键避坑点,旨在帮助中小型团队提升关卡设计和原型开发的协作效率。

weixin_29001683的博客 267

别再手动巡检了!用Zabbix 5.0 + SNMPv2自动监控华为S系列交换机(附完整命令集)

本文详细介绍了如何利用Zabbix 5.0与SNMPv2实现华为S系列交换机的自动化监控,告别低效的手动巡检。通过配置SNMPv2c安全基线、核心功能启用及Zabbix Server端深度配置,构建7×24小时监控体系,实时预警接口状态、流量波动等关键指标,大幅提升运维效率与故障响应速度。

weixin_30940783的博客 628

SqlServer循环插入10000条数据

创建Users表并且插入10000条数据,script如下:use test_Lucy go -- 判断如果Users表已经存在,则drop Users表 if exists(select * from sysobjects where name='Users') drop table Users -- 创建Users表 create table Users ( Id int primary

be hungry, be foolish..... 2937

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2208

一次性往数据库中插入1万条数据的方法

MySQL优化

weixin_52130337的博客 9985

从东南大学906被刷到调剂过程(内含个人感想)

介绍了自己在看到初试成绩,到后期复习以及调剂的全过程,当中也包含了自己的复试中的感想,希望大家理性看待。

Philo的博客 2854

【WLAN】【测试】WPS测试方法小结

手机 一般稍微老的手机会支持,新手机反而不支持。 比如小米6(系统版本新的话不支持)在设置——高级设置——WPS连接。 笔记本 有些笔记本(如Surface Laptop 3)天生支持WPS,比如在连接某SSID的时候,会有“也可以通过按路由器上的按钮连接”这样的字样,出来后按AP的WPS按键即可以进行连接。 Qss软件 AP mesh组网中,Controller和Agent之间通过WIFI组网,可使用WPS的方式进行连接。可利用这点用Agent来测试AP的WPS功能。 ...

一介草民,只为生活。 1万+

【mysql】如何编写存储过程,实现插入10000条数据到student表中?

可以右击,运行函数,填写传入参数即可;

MS_SONG的博客 1614

RT-DETR改进有效系列目录 | 包含卷积、主干、RepC3、注意力机制、Neck上百种创新机制

Hello,各位读者们好Hello,各位读者,距离第一天发RT-DETR的博客已经过去了接近两个月,这段时间里我深入的研究了一下RT-DETR在ultralytics仓库的使用,旨在为大家解决为什么用v8的仓库训练的时候模型不收敛,精度差的离谱的问题,我也是成功的找到了解决方案,对于ultralytics仓库进行多处改进从而让其还原RT-DETR官方的实验环境从而达到一比一的效果。同时本人一些讲解视频和包含我所有创新的RT-DETR文档。

Snu77的博客 3万+

c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)

转自:https://www.zhangshengrong.com/p/OgN5BjdXnW/ c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql) 在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。 首先说一下,IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider,此接口在前

u014094704的博客 4476

JMeter 中实现 100 个用户在 3 秒内并发登录

通过以上配置,你可以在 JMeter 中实现 100 个用户在 3 秒内并发登录

南开大学 | 10 年 + 软件研发与测试实战 | 现任企业质控负责人 | 专注端到端交付质量 1680

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

sql 插入性能

以下内容 摘自此贴http://topic.youkuaiyun.com/t/20050605/11/4060295.html 开发的项目中要插入大量的数据到数据库中,差不多每秒8000条记录以上.共有4个字段,每条记录不超过300字节.以前的系统是在linux下实现的,用的mysql数据库,普通的insert语句,每秒可以插入10000条记录左右.可我使用sql server在win2003下,...

weixin_30377461的博客 207

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

node将SQLSERVER的数据转移到MYSQL

node从SQLSERVER转移数据到MYSQL nodejs想要从sqlserver转移数据到mysal,需要连接两个数据库 这里整合了sqlserver参数但未连接 const mysql = require('mysql'); var mssql = require('mssql'); const moment = require('moment'); var config = { us...

HJ221711的博客 349

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SQL Server通过mybatis批量插入,BigDecimal类型数据与预期不符

Mybatis批量插入SQL Server,BigDecimal类型数据精度损失问题

SQF2404的博客 1268

orcel向mysql推送数据_数据通过数据库链接从Oracle推送到Microsoft SQL Server

我们使用Oracle hetrogeneous服务创建了从Oracle数据库到MS sql server数据库的数据库链接 .Oracle DB中有一个表A,SQL Server DB中有一个表B.表结构不同 . 我从Oracle dB中选择了一些行,并使用Insert语句通过Database链接推送到mssqlserver DB .此查询的性能很慢 . 我检查了Oracle日志 . Sayin...

weixin_35869703的博客 530

SQL 语句中生成大批量模拟数据的常用方法,涵盖不同场景和数据库类型。

数据库批量数据生成方法摘要:介绍7种高效生成测试数据的技术方案,包括基础循环插入法(存储过程)、递归CTE法(MySQL 8.0+)、幂次连接法(快速生成大量数据)、数字辅助表法、批量插入优化法(分批次提交)、数据库特有功能(如PostgreSQL的generate_series)以及外部工具法。重点对比各方案性能与适用场景,推荐MySQL 8.0+使用递归CTE法,其他场景采用数字表法或批量插入法,并给出禁用索引、分批提交等优化建议,为10万级数据生成提供最优解决方案。

吾非技道之翘楚,唯好研索之学人耳。此处所录,或为既往所历之困厄,或为解厄寻途之思绎,亦有学而随记之零散笺注 —— 犹整理书斋,将诸般识见渐次厘剔,使各归其序。若此些微碎语,能助同路求索之君,实乃吾之幸事!诚邀共论,相携精进,不亦乐乎? 1741

sql_server数据库入门学习(二)

😁大家好呀,今天是我第二次写sql_server啦,也是最近才学习sql_server,也想着记录一下自己的学习过程,并且分享给大家尼!今天向大家介绍的是SQL Server 是由微软公司(Microsoft)开发的关系型数(RDBMS)。RDBMS 是 SQL 以及所有现代数据库系统的基础,比如 MS SQL Server,IBM DB2,Oracle,MySQL 以及微软的 Microsoft Access。今天是数据库的第二讲啦,不知道上一讲你有没有认真的跟着我的节奏来呢?

m0_64361522的博客 1109

Python 数据存储,实现数据写入TXT、Json、Excel、数据库(Mysql、MongoDB、SQL Server)

一、文件存储 1.1 TXT 文件存储 方式1 fp = open(filename,mode,encoding) 方法用于打开一个文件,并返回文件对象 fp.函数方法() 调用函数方法 fp.close() 关闭文件 fp = open('model_two.txt',mode='a',encoding='utf-8') fp.read() fp.write('123') fp.readline() # fp.seek(偏移量,[起始位置]) # 偏移量: 单位为字节,可正可负 # 起始位置: 0

m0_56966142的博客 1883

SqlServer的批量插入【转】我也没有去验证,等实际用的时候要验证一下

原文网址:http://www.cnblogs.com/Ruiky/archive/2012/04/19/2456784.html SqlServer的批量插入很简单,使用SqlBulkCopy就可以,以下是该类的实现: /// /// 为 System.Data.SqlClient 提供的用于批量操作的方法。 /// public sealed cla

花开花落、云卷云舒的博客 378

php 数据库随机插入,mysql随机数据生成并插入

mysql随机数据生成并插入dblp数据库中引用信息很少,平均一篇论文引用0.2篇。使用dblp做实验数据集的某篇论文提到,可以随机添加引用信息。受此启发,我打算为每一篇论文都添加20篇随机引用,于是就写出了如下的sql语句:String sql = "insert into citation(pId1,pId2) values( (select pId from papers limit ?,1...

weixin_28676289的博客 406

driverclasss oracle,JDBC连接mysql、sqlserver、oracle数据库示例,含代码

【JDBC 连接 mysql】 注意:mysql默认关闭了batch处理,只有把rewriteBatchedStatements参数置为true, 驱动才会批量执行SQL;同时,选项对INSERT/UPDATE/DELETE都有效,只不过对INSERT它为会预先重排一下SQL语句;另外,当batchSize <= 3时,驱动会宁愿一条一条地执行SQL;所以,如果你想验证rewriteBatc...

weixin_36181282的博客 521

【SQL Server数据迁移】把csv文件中的数据导入SQL Server的方法

--1.修改系统参数 --修改高级参数 sp_configure 'show advanced options',1 go --允许即席分布式查询 sp_configure 'Ad Hoc Distributed Queries',1 go --如果配置的值不在合理范围(在最小值最大值范围内),那么可以强制覆盖 reconfigure with override go...

weixin_33943347的博客 281
上一篇: Mysql相关操作
下一篇: ORACLE日期时间函数大全
壹圆一角
博客等级 码龄14年 21粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值