分类
学习笔记

SqlBulkCopy使用

SQLBulkCopy用于批量复制数据。性能优势明显。

使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader实例读取数据(如:SqlDataReader)。

示例:

    //sqlbulkCopy 批量插入数据库
            using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
            {
                //一次批量的插入的数据量
                sqlBC.BatchSize = 10000;
                //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
                sqlBC.BulkCopyTimeout = 60;             
                //设置要批量写入的表
                sqlBC.DestinationTableName = "dbo.tbl_test";

                //自定义的datatable和数据库的字段进行对应
                sqlBC.ColumnMappings.Add("A", "col_A");
                sqlBC.ColumnMappings.Add("B", "col_B");

                //批量写入
                sqlBC.WriteToServer(dt);
            }