如何批量插入多个记录并快速获取每个记录的最后插入ID(经典asp/ado)?使用记录集批量插入数据并快速返回新ID快速
我试过这个,但它只能运行在每秒约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插入到select()等中,因为我需要在文本上运行处理函数。
您使用的是哪种数据库引擎? – AnthonyWJones 2012-07-27 15:08:49
SQL Server 2008 R2 – 2012-07-29 15:53:41
我不认为你的问题还没有足够的信息来正确回答它。我们通常谈论多少行?为什么有必要在那里而不是稍后检索ID?该代码看起来“psuedo”给我,你可以充实它使它更真实,目前它是一个无限循环?输入驱动数据如何与创建的行相关,输入数据从何而来? “myFunction”的独特之处在于,相同的函数无法在T-SQL中复制? – AnthonyWJones 2012-07-30 11:46:18