您的位置:首页 > 数据库 > SQL

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”不匹配。

是因为 你修改该表的时候有一个“排序规范”必须保持源定义和目标保持一致

例子如下
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();//关闭

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: