我有一個Access數據庫擁有超過500000條記錄,我想批量刪除記錄。我得到我需要的基礎上刪除某些條件ID的列表,這可能是1〜5000。現在我的代碼看起來像這樣的CDatabase ::的ExecuteSQL批量刪除Access數據庫
for (i = 0 to 5000)
{
CDatabase.ExecuteSQL(Delete from table where id = ItemToDelete(i))
}
它會針對每個SQL調用近1秒。
是否有一個選項來執行批量刪除或是否有更好的方法來做到這一點?
訪問權限僅限於單批處理。 IE每批只允許一個SQL語句。如果你想做大量的刪除操作,那麼把ID放在Where子句中作爲一個String,然後將它發送給Access進行處理。刪除*從表(id)在(.....)中的表格中刪除。 Access不是一個高效的DBMS。這意味着真正的單人操作。 – GoldBishop
@GoldBishop 5000 ID與IN是任何數據庫的一個非常糟糕的主意。 Access不是DBMS,它通常使用Jet/ACE RDBMS,但並非總是如此。它不是一人操作的,它是多用戶的。正確使用時可以高效。 – Fionnuala
也許糟糕的想法....大概解決了這個問題。不進入辯論,但訪問是一個1-5人的數據庫管理系統(其中包括RDBMS),這是由透視定義1人系統。 – GoldBishop