如何实现快速的将DataTable插入到临时表

lcyhjx 2009-03-25 09:45:18
如何实现快速的将DataTable插入到临时表

当前我在程序中得到了一个DataTable, 现在我想把这个DataTable的数据插入到临时表中,如何实现呢?

我最初的想法:
foreach(DataRow dr in DataTable.Rows)
{
//将dr转换成一条sql语句
}
//执行转换生成的sql
这样做的主要问题,就是在DataTable数据量很大的时候,由DataTable转换成sql,效率比较低

请教各位,有没有其他高效的方法实现?
...全文
818 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcyhjx 2009-03-26
  • 打赏
  • 举报
回复
测试碰到如下问题:
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(ConTempString))
{
bcp.BatchSize = 100;
bcp.DestinationTableName= "tempdb..#BRTxnHeader"; //出问题的地方
bcp.WriteToServer(ds.Tables[0]);
bcp.Close();
}

如果程序中目标表是一个临时表,那么会提示“无法访问#BRTxnHeader”,执行不成功
只要目标表不是临时表就可以执行成功。不知道问题出在哪里?
刚开始怀疑是不是不支持临时表,但是我查MSDN,上面的介绍说
"可以使用 DestinationTableName 属性的 tempdb..#table 或 tempdb.<owner>.#table 等值将数据批量复制到临时表中。"
所以我不清楚如果将数据插入到临时表的时候,是什么原因造成的问题,该如何解决?
lcyhjx 2009-03-25
  • 打赏
  • 举报
回复
收到,谢谢楼上的,我测试一下
jinjazz 2009-03-25
  • 打赏
  • 举报
回复
参考
http://blog.csdn.net/jinjazz/archive/2008/07/14/2650506.aspx
jinjazz 2009-03-25
  • 打赏
  • 举报
回复
两句话就可以了

 System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy("连接字符串");
bcp.WriteToServer(dataTable);
htl258_Tony 2009-03-25
  • 打赏
  • 举报
回复
select * into 临时表 from 你的表
lgxyz 2009-03-25
  • 打赏
  • 举报
回复
?????????
这是咋?
htl258_Tony 2009-03-25
  • 打赏
  • 举报
回复
不是SQL语法
dawugui 2009-03-25
  • 打赏
  • 举报
回复
insert into 临时表 from 正式表
insert into 临时表 from (子查询) t

22,181

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧