如何批量插入多個記錄並快速獲取每個記錄的最後插入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