读书人

数千条记录怎么快速保存

发布时间: 2014-01-05 18:22:56 作者: rapoo

数千条记录如何快速保存?
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次就差不多了

读书人网 >SQL Server

热点推荐