目前我觉得有两种方法可以用作批量数据的处理,也算比较靠谱的吧: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 批量处理数据相关推荐

  1. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法- 发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用In ...

  2. 大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql

    c#代码,批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase{public MySql_Target(){th ...

  3. sqlserver 批量插入数据(此方式同样适用mysql)

    --常用的方式 insert into jobs(job_desc,min_lvl,max_lvl) values('SQL语句插入数据A',45,54) insert into jobs(job_d ...

  4. SQLServer使用表值参数,高性能批量插入数据

    记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库. 今天又接到同事类似的需求,不过这 ...

  5. SqlServer 利用游标批量更新数据

    SqlServer 利用游标批量更新数据 Intro 游标在有时候会很有用,在更新一部分不多的数据时,可以很方便的更新数据,不需要再写一个小工具来做了,直接写 SQL 就可以了 Sample 下面来看 ...

  6. 如何快速插入大量/批量随机数据到数据库(oracle/sqlserver/mysql/postgresql)

    在日常的数据库开发和测试中,需要创建一些测试的表,并构造一下假的数据.这时就需要向表中插入随机数据,特别是插入大量随机数据以获取更好的验证.笔者在开发和应用中,也遇到了很多类似的问题,对于不同的数据库 ...

  7. 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据

    前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验---简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据>:本文主要介绍如 ...

  8. sqlserver:使用 SqlBulkCopy 批量插入数据

    环境: window 10 sqlserver 2014 参考: <博文:SqlBulkCopy使用注意事项> 1. 问题场景 在批量迁移或导入数据时,我们可能会遇到插入大量数据的问题,比 ...

  9. c datatable导入mysql_《项目经验》–简单三层使用DataTable向数据库表批量导入数据—向SqlServer一张表中导入数据 | 学步园...

    向数据库的一张表中添加数据,可以采用单个添加,即一条数据.一条数据的添加:也可以采用批量导入,依次将好些条数据写入数据库的一张表中.文本借助实例<添加系列信息>讲解一种向数据库批量导入数据 ...

最新文章

  1. 利用freopen()函数和fc命令简化程序调试
  2. 实现php数组编码的转换的类
  3. android dialog 结构,Android 原生Dialog实现
  4. hashmap put过程_阿里十年技术大咖,教你如何分析1.7中HashMap死循环
  5. C# DataTable的詳細用法
  6. linus开启snmp_【snmp】Linux开启snmp及查询
  7. 理论计算机图形渲染技术是否已经到了没有什么可以研究的地步了?
  8. 误区30日谈21-24
  9. 简短介绍_简短的自我介绍
  10. [DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.10_1.12/梯度消失/梯度爆炸/权重初始化...
  11. DS1302 原理及操作方法
  12. ubuntu 添加证书
  13. 卷积操作改进之Involution: Inverting the Inherence of Convolution for Visual Recognition
  14. 最详细的IIS发布站点步骤
  15. Canonical标签的作用及使用方法
  16. 解决“我们注意到您的计算机目前处于离线状态。您需要连接网络以使用EA”
  17. 开发基于 Google Map 的 Android 应用
  18. Android与MVC设计模式
  19. 30天自制操作系统 (一个操作系统的实现)
  20. 一、ADSP-21489开发版在VisualDSP软件下的仿真器配置

热门文章

  1. spring+log4j
  2. G - 娜娜梦游仙境系列——梦醒
  3. 65个漂亮的WordPress博客主题
  4. MOSS 代替Spring Boot Admin 的服务治理工具
  5. 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷
  6. 汇编跳转比较用的列表
  7. CSS设计指南(读书笔记 - 背景)
  8. 微习惯虽好,但是最重要的还是坚持
  9. vim编辑器之按键说明
  10. java concurrent包介绍及使用