SqlBulkCopy的几点注意事项
2013-10-29 18:03
323 查看
原文:http://blog.163.com/xiong1000@126/blog/static/218930920107240184853/
SqlBulkCopy 非常好用这一点毋庸置疑,效率肯定是比INSERT ...SELECT 要高个几倍。
不过刚开始我遇到很多问题。
会报运行时异常:“给定的 ColumnMapping 与源或目标中的任意列均不匹配”的处理方法
是因为在这里大小写是完全限定的包括表名和Columnname全部是严格大小写
源列“kl_zj”的区域设置 ID“1033”和目标列“kl_zj”的区域设置 ID“2052”不匹配。
是因为 你修改该表的时候有一个“排序规范”必须保持源定义和目标保持一致
例子如下
SqlBulkCopy 非常好用这一点毋庸置疑,效率肯定是比INSERT ...SELECT 要高个几倍。
不过刚开始我遇到很多问题。
会报运行时异常:“给定的 ColumnMapping 与源或目标中的任意列均不匹配”的处理方法
是因为在这里大小写是完全限定的包括表名和Columnname全部是严格大小写
源列“kl_zj”的区域设置 ID“1033”和目标列“kl_zj”的区域设置 ID“2052”不匹配。
是因为 你修改该表的时候有一个“排序规范”必须保持源定义和目标保持一致
例子如下
string connectionString = txtString.Text; string strSQL = "select hth,khmc,khdm,kl_zj,sj_zj,ywy,bm,htlx,qdrq,ywgs from gghtb"; using (SqlConnection sourceConnection = new SqlConnection(connectionString)) { //源地址 SqlCommand myCommand = new SqlCommand(strSQL,sourceConnection); sourceConnection.Open(); SqlDataReader reader = myCommand.ExecuteReader(); //目的 using (SqlConnection destinationConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["SBSCRMConnectionString"].ConnectionString)) { destinationConnection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection.ConnectionString)) { bulkCopy.BatchSize = 500; bulkCopy.DestinationTableName = "History_gghtb"; bulkCopy.WriteToServer(reader); } } reader.Close();//关闭 }
相关文章推荐
- [.Net码农]SqlBulkCopy的几点注意事项
- 多线程的SqlBulkCopy批量导入、事务和SqlBulkCopy使用的数据集中自定义映射字段的注意事项
- SqlBulkCopy 实现原汁原味复制的注意事项
- SQL:修复脚本的几点注意事项
- 使用SqlBulkCopy时应注意Sqlserver表中使用缺省值的列
- 使用SqlBulkCopy时应注意Sqlserver表中使用缺省值的列
- 项目中在写ibatis中的sql语句时的几点注意事项:
- 用SqlBulkCopy快速复制记录
- ACCESS中使用SQL语句应注意的地方及几点技巧
- 使用事务和SqlBulkCopy导入大批量数据
- ADO.Net使用SqlBulkCopy
- T-SQL注意事项(1)——SET NOCOUNT ON的去与留
- 分页联合查询sql 注意事项
- SqlBulkCopy 批量插入数据
- 使用SqlBulkCopy进行大批量数据迁移
- SqlBulkCopy Class
- 使用SqlBulkCopy,报错“从bcp客户端收到一个对colid 1无效的列长度”
- Oracle Expdp/Impdp 进行数据迁移的 几点注意事项
- Navicat导入sql脚本文件卡死注意事项
- SqlBulkCopy 高效、大数据量复制数据