当前位置: 代码迷 >> Sql Server >> 数千条记录怎么快速保存
  详细解决方案

数千条记录怎么快速保存

热度:52   发布时间:2016-04-24 19:23:32.0
数千条记录如何快速保存?
SQL2000,每次保存时有数千条记,如何快速保存?
我现在用的语句如下:
 rs.Open "Select * FROM Table  Where 1=2", Cw_DataEnvi.DataConnect,adOpenDynamic,adLockOptimistic
 With rs
      For Rowjsq = 1 To Vsf.Rows - 1
          .AddNew
          .Fields(0) = Val(Vsf.TextMatrix(Rowjsq, 0))
          .Fields(1) = Trim(Vsf.TextMatrix(Rowjsq, 1))
          .Update
       Next
       .Close
   End With
由于以上保存方法速度较慢,请教教更快的方法。

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

是要把数组里的值,保存到表里是吗


那就直接拼接语句,比如成这样:

insert Into 目标表(列1,列2...)
select 值1,值2,值3,...
union all
select 值1,值2,值3,...
union all
select 值1,值2,值3,...


需要保存的记录在表格中,表格的每行为一条记录,表格有两列,有数千行。


数据在表格里,这个表格 也是sql server中的一个表吗


这个表格不是sql server中的一个表,这个表格中的数据是用户录入的。


那能不能这样呢,先拼接出一个insert 语句,然后一次性插入这几千条数据:


定义一个变量 ="insert into 表"

 For Rowjsq = 1 To Vsf.Rows - 1
   
      定义一个变量=定义一个变量+" select " +Val(Vsf.TextMatrix(Rowjsq, 0)) +","+Trim(Vsf.TextMatrix(Rowjsq, 1)) +" union all "
 Next


我试试看


对了 这个语句拼接出来后,得把最后一个 union all 去掉



我是在VB6里写的,不知道这样拼接,变量的字符串长度是否会超出?


好像最长是64k把,应该不会超过长度的


怕字符串太长就每隔三五百条记录执行一次。


哦 那也行,这样执行个10次就差不多了
  相关解决方案