mysql mssql c#_C#结合MsSql,MySql批量插入不重复数据思路

本文介绍了在C#中如何实现批量插入SQL Server和MySQL数据库时避免重复数据的策略。针对SQL Server,通过创建用户自定义表类型和存储过程实现;而在MySQL中,由于缺乏类似表变量的功能,建议使用文件或缓存(如Memcached)作为缓冲层,验证数据并构建SQL语句后再批量提交。
摘要由CSDN通过智能技术生成

记得之前面试别人的时候,我问过这样的一个面试题:请写出一条sql语句批量插入100条不重复的数据到sql20008数据库中。也不知道是为啥,好多人就直接写"Insert into tb values(val1,val2,val3,...)",然后再加上一句话:放在循环中。我有点纳闷,呵呵。说真的,如果我一开始没有接触到批量数据操作的时候,我想我也会这么写。其实,这个题目我主要是考察面试人员对"insert into ...select..."语句的熟悉情况,至于能不能写出完整正确的sql语句并不重要,重要的是思路。

那么在实际开发中我们对于批量操作数据的思路又是啥了?

1.循环构建sql语句,批量提交。

2.使用SqlBulkCopy类,批量提交数据(缺点:没有好的方法去重复,变态的方法是插入数据之前删除已经存在的并且需要批量插入的数据,然后再提交)。

3.使用sql2008的表变量结合"insert into ...select..."语句,代码构建临时表,然后提交临时表数据。

接下来会重点介绍第3种方法,数据库环境分别是sql2008,mysql5.5.16(安装在centos5.6下)。

一,C#+Sql2008

1.首先需要在数据库中构建"用户自定义表类型"以及"存储过程",截图如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值