0

如何批量插入多条记录并快速获取每条记录的最后插入 ID(经典 asp/ado)?

我试过这个,但它每秒只能运行大约 3 行,这是个笑话。

rs.Open "myTable", cn,adOpenKeyset, adLockOptimistic
do while NOT rs.EOF   
    rs.AddNew        
    rs("text") = myFunction() ' returns some text.
    rs.update
    lastid = rs("id") ' get new id and so something
loop

使用普通的 adOpenForwardOnly(不返回最后插入的 ID),它的运行速度提高了大约 1000 倍。

任何人都可以建议解决上述问题或替代解决方案吗?我必须在代码中执行此操作,而不是直接将 sql insert into ... select() 等,因为我需要对文本运行处理函数。

4

1 回答 1

0

快速执行此操作的方法是在存储过程中使用批量插入。您最终会运行查询以取回所有 ID,但它减少了主要瓶颈:访问数据库的次数。

于 2012-07-27T14:17:21.230 回答