Sql Server数据库之通过SqlBulkCopy快速插入大量数据
2016-04-06 09:24
691 查看
废话不多说,直接上代码
/// <summary> /// 海量数据插入方法 /// </summary> /// <param name="connectionString">目标连接字符</param> /// <param name="TableName">目标表</param> /// <param name="dt">源数据</param> private void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt) { using (SqlConnection conn = new SqlConnection(connectionString)) { using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)) { try { sqlbulkcopy.DestinationTableName = TableName; //一次批量的插入的数据量 sqlbulkcopy.BatchSize = 1000; //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除 sqlbulkcopy.BulkCopyTimeout = 60; //设定NotifyAfter 属性,以便在每插入10000 条数据时,呼叫相应事件。 sqlbulkcopy.NotifyAfter = 10000; for (int i = 0; i < dt.Columns.Count; i++) { sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); } sqlbulkcopy.WriteToServer(dt); } catch (System.Exception ex) { throw ex; } } } }
相关文章推荐
- MyBatis输出sql需要log4j.properties配置
- MySQL Optimization
- TPC-H数据导入postgresql教程
- Sql发布订阅设置不初始化订阅库架构的设置
- django之异常错误2(Error was: No module named sqlite3.base)
- PLSQL Developer安装、tnsnames.ora配置 解答
- 命令窗口查看执行计划不全
- VSftpd使用MySQL存储虚拟用户进行认证 推荐
- 在windows下使用postgreSQL导入tpch的数据表
- 大型服务器架构之MySQL
- Percona Toolkit 学习(四)(heartbeat, index-usage,ioprofile,killmextmysql-summary)
- Oracle数据库学习之安装SQL Developer on Mac
- Oracle数据库学习之安装SQL Developer on Mac
- MySQL 主从复制与读写分离概念及架构分析
- MySQL 数据库主从复制架构
- SQL Server 2016中In-Memory OLTP继CTP3之后的新改进
- mysql主主互备+原来mysql主从架构
- 开源MySQLMTOP配置系统资源监控功能
- 开源MySQLMTOP配置数据库慢查询分析功能
- SQL Server自动化运维系列——批量执行SQL脚本(Power Shell)