sql server 批量插入数据
时间:2019-11-15
本文章向大家介绍sql server 批量插入数据,主要包括sql server 批量插入数据使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace winform测试插入 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string ConnectionString = string.Format("Data Source={0};database={1};uid=sa;pwd=123456", "192.168.200.101", "BulkTestDB"); string erro = string.Empty; private void button1_Click(object sender, EventArgs e) { var t = MSSQLHelper.TestConnection(out erro, ConnectionString); // inset_1000_data(); 14秒 bulk_1000_data(); ////111.8871 总毫秒数 } public void bulk_1000_data() { //条件 构建的 datatable 必须和 //var dt = select top 0 * from B_ProductCode; //查询的结构一样 //如果 插入的数据为 主键 5 -10; 第二次插入的主键是9-11; 将不会插入 9-11数据; DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[] { new DataColumn("Id",typeof(int)), new DataColumn("UserName",typeof(string)), //new DataColumn("Pwd",typeof(string)) }); for (int i = 0; i < 1000; i++) { DataRow r = dt.NewRow(); r[0] = i; r[1] = string.Format("User-{0}", i); // r[2] = string.Format("Pwd-{0}", i); dt.Rows.Add(r); } double test_time; //总数据数 5 553 345; 五百万条 数据 System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); //开始监视代码运行时间 //----------------------------------------- //| //| BulkToDB(dt); //| //| //------------------------------------------- watch.Stop(); //停止监视 TimeSpan timespan = watch.Elapsed; //获取当前实例测量得出的总时间 test_time = timespan.TotalMilliseconds; //总毫秒数 MessageBox.Show(test_time.ToString()); //111.8871 总毫秒数 } public void inset_1000_data() { double test_time; //总数据数 5 553 345; 五百万条 数据 System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); //开始监视代码运行时间 //----------------------------------------- //| //| for (int i = 0; i < 1000; i++) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(" USE [BulkTestDB] "); sb.AppendFormat(" INSERT INTO [dbo].[BulkTestTable] "); sb.AppendFormat(" ([Id] "); sb.AppendFormat(" ,[UserName] "); sb.AppendFormat(" ,[Pwd]) "); sb.AppendFormat(" VALUES "); sb.AppendFormat(" ({0} ", i); sb.AppendFormat(" ,'name{0}'", i); sb.AppendFormat(" ,'pwd{0}')", i); MSSQLHelper.ExecuteNonQuery(sb.ToString(), out erro, ConnectionString); if (erro != string.Empty) { MessageBox.Show(erro); break; } } //| //| //------------------------------------------- watch.Stop(); //停止监视 TimeSpan timespan = watch.Elapsed; //获取当前实例测量得出的总时间 test_time = timespan.TotalMilliseconds; //总毫秒数 MessageBox.Show(test_time.ToString()); //14659.1165 总毫秒数 } //使用Bulk插入的情况 [ 较快 ] #region [ 使用Bulk插入的情况 ] void BulkToDB(DataTable dt) { Stopwatch sw = new Stopwatch(); SqlConnection sqlconn = new SqlConnection(ConnectionString); SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlconn); bulkCopy.DestinationTableName = "BulkTestTable"; //表名 bulkCopy.BatchSize = dt.Rows.Count; //数据量 try { sqlconn.Open(); if (dt != null && dt.Rows.Count != 0) { bulkCopy.WriteToServer(dt); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { sqlconn.Close(); if (bulkCopy != null) { bulkCopy.Close(); } } } #endregion } }
转自 https://www.cnblogs.com/zoro-zero/p/7743164.html
原文地址:https://www.cnblogs.com/enych/p/11866690.html
- Go语言的单例模式(Singleton)
- DPDK 全面分析
- 关于Go语言中数组的参数传递问题
- 【深度学习系列】用PaddlePaddle进行车牌识别(一)
- GO语言-new()分配与构造和初始化结构
- Java基础-day05-超市收银系统案例题
- mongodb11天之屠龙宝刀(五)lbs地理位置检索:存储经纬度以及查询
- 【深度学习系列】关于PaddlePaddle的一些避“坑”技巧
- 【深度学习系列】PaddlePaddle可视化之VisualDL
- Java基础-day04-代码题
- 【深度学习系列】CNN模型的可视化
- mongodb11天之屠龙宝刀(六)mapreduce:mongodb中mapreduce原理与操作案例
- 真实场景的虚拟视点合成(View Synthsis)详解
- mongodb11天之屠龙宝刀(七)functions: mongodb 执行 functions入门案例
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- Angular In-memory Web API使用介绍
- 攻防世界-php_rce
- 无法添加某个relationship给SAP CRM Product category的一个可能原因
- 记一次DataGuard SWITCHOVER_STATUS 状态为RESOLVABLE GAP的处理
- ABAP数据库表的元数据
- ctfshow-萌新赛
- VC++ libcurl FTP上传客户端程序
- Oracle RAC变更实验之修改11gR2+公网IP地址(网段不变)
- C# 纯控制台创建一个全屏窗口
- MySQL MHA部署添加Linux/Unix基本信息至Django中
- 记一次innobackupex导致的从库无法同步的问题
- mysqlbinlog命令详解记一次有函数的标量子查询导致的查询缓慢
- ctfshow红包题-web
- 微信支付一面(C++后台)
- 强网杯-随便注