我有一條SQL語句,它返回一些行並將它們插入到VBA中的一個數組中。然後我遍歷數組並粘貼到電子表格行中。分割SQL結果
我內存不足,所以我想分批進行粘貼。
我不介意每次運行相同的SQL查詢來收集數據,只要我能避免內存問題。我怎樣才能做到這一點?在我的SQL我曾經使用LIMIT,但在這裏我想說選擇第一個... 1000?然後接下來的1000等
我有一條SQL語句,它返回一些行並將它們插入到VBA中的一個數組中。然後我遍歷數組並粘貼到電子表格行中。分割SQL結果
我內存不足,所以我想分批進行粘貼。
我不介意每次運行相同的SQL查詢來收集數據,只要我能避免內存問題。我怎樣才能做到這一點?在我的SQL我曾經使用LIMIT,但在這裏我想說選擇第一個... 1000?然後接下來的1000等
我發現最容易創建一個存儲過程調用,通過傳遞2個參數使用基本分頁功能:每頁和所需頁面的行。
退房這個問題:How to do pagination in SQL Server 2008
如果你編程調用存儲過程,你可以使用while循環,直到你沒有得到任何結果回來。
要「選擇第一個... 1000再下1000?」你以下幾點:
SELECT * FROM table
LIMIT <limit>
OFFSET <batch * limit>
其中限制將等於1000和批處理會從0開始併爲每個呼叫增加1
這究竟做了什麼?我多次調用SQL代碼?它如何/跟什麼位置跟蹤?感謝您的回答 – mezamorphic
這將一次獲得1000行,您可以在完成後從內存中釋放(每批)。你可以簡單地做一個for循環來存儲批處理: limit = 1000; for(batch = 0; batch
這是Mysql特有的--OP指定問題中的SQL Server。 – Bridge