sqlserver 批量处理数据
目前我觉得有两种方法可以用作批量数据的处理,也算比较靠谱的吧:sqlbulkcopy 和利用表值函数。
1.sqlbulkcopy是dotnet中的一个用来处理大批量插入数据的,具体用法如下:
using (SqlConnection conSave = new SqlConnection(Config.RefStatWriteConnectString))
{
conSave.Open();
//conSave.CommandTimeout = Config.SqlExpireTime;
System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conSave);
sqlBC.BatchSize = 100000;
//sqlBC.
sqlBC.BulkCopyTimeout = Config.SqlExpireTime;
sqlBC.DestinationTableName = "dbo.weblog";
sqlBC.ColumnMappings.Add("ref", "ref");
sqlBC.ColumnMappings.Add("refcount", "refcount");
sqlBC.ColumnMappings.Add("sourpv", "sourpv");
sqlBC.WriteToServer(weblog);
}
以上只是大略的调用代码。
2.利用表值函数和merge
创建表值函数:
create type typeTest as table (id int)
表值函数作为参数的dotnet调用代码
ParameterName="@OrderRefDetailTable",
TypeName="OrderRefDetailTable",
SqlDbType=SqlDbType.Structured,
Value=(read !=null?(object)read:dtOrderRef)
参数的值可以是 DataTable
, IEnumerable<SqlDataRecord>
, or DbDataReader
利用merge的好处就是效率会高一点,而且不但可以插入数据还可更新数据
merge t
using s on t.id=s.id
when matched then update t.test=s.test
when not matched then insert values(s.id,s.test)
转载于:https://www.cnblogs.com/hacker012/archive/2013/03/06/2945559.html
sqlserver 批量处理数据相关推荐
- SQLServer 批量插入数据的两种方法
SQLServer 批量插入数据的两种方法- 发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用In ...
- 大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql
c#代码,批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase{public MySql_Target(){th ...
- sqlserver 批量插入数据(此方式同样适用mysql)
--常用的方式 insert into jobs(job_desc,min_lvl,max_lvl) values('SQL语句插入数据A',45,54) insert into jobs(job_d ...
- SQLServer使用表值参数,高性能批量插入数据
记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库. 今天又接到同事类似的需求,不过这 ...
- SqlServer 利用游标批量更新数据
SqlServer 利用游标批量更新数据 Intro 游标在有时候会很有用,在更新一部分不多的数据时,可以很方便的更新数据,不需要再写一个小工具来做了,直接写 SQL 就可以了 Sample 下面来看 ...
- 如何快速插入大量/批量随机数据到数据库(oracle/sqlserver/mysql/postgresql)
在日常的数据库开发和测试中,需要创建一些测试的表,并构造一下假的数据.这时就需要向表中插入随机数据,特别是插入大量随机数据以获取更好的验证.笔者在开发和应用中,也遇到了很多类似的问题,对于不同的数据库 ...
- 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据
前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验---简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据>:本文主要介绍如 ...
- sqlserver:使用 SqlBulkCopy 批量插入数据
环境: window 10 sqlserver 2014 参考: <博文:SqlBulkCopy使用注意事项> 1. 问题场景 在批量迁移或导入数据时,我们可能会遇到插入大量数据的问题,比 ...
- c datatable导入mysql_《项目经验》–简单三层使用DataTable向数据库表批量导入数据—向SqlServer一张表中导入数据 | 学步园...
向数据库的一张表中添加数据,可以采用单个添加,即一条数据.一条数据的添加:也可以采用批量导入,依次将好些条数据写入数据库的一张表中.文本借助实例<添加系列信息>讲解一种向数据库批量导入数据 ...
最新文章
- 利用freopen()函数和fc命令简化程序调试
- 实现php数组编码的转换的类
- android dialog 结构,Android 原生Dialog实现
- hashmap put过程_阿里十年技术大咖,教你如何分析1.7中HashMap死循环
- C# DataTable的詳細用法
- linus开启snmp_【snmp】Linux开启snmp及查询
- 理论计算机图形渲染技术是否已经到了没有什么可以研究的地步了?
- 误区30日谈21-24
- 简短介绍_简短的自我介绍
- [DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.10_1.12/梯度消失/梯度爆炸/权重初始化...
- DS1302 原理及操作方法
- ubuntu 添加证书
- 卷积操作改进之Involution: Inverting the Inherence of Convolution for Visual Recognition
- 最详细的IIS发布站点步骤
- Canonical标签的作用及使用方法
- 解决“我们注意到您的计算机目前处于离线状态。您需要连接网络以使用EA”
- 开发基于 Google Map 的 Android 应用
- Android与MVC设计模式
- 30天自制操作系统 (一个操作系统的实现)
- 一、ADSP-21489开发版在VisualDSP软件下的仿真器配置