我在表中有大約10,000條記錄。我在代碼存儲器中獲取所有記錄並進行一些處理,並決定處理是否成功。因此,對於每條記錄,我需要將BIT
類型的列更新爲0或1.在一個數據庫調用中更新多條記錄
處理完每個項目後,我確實不希望每次都擊中數據庫,而是將所有立即記錄更新。
有沒有辦法做到這一點或任何其他有效的方法。
我在表中有大約10,000條記錄。我在代碼存儲器中獲取所有記錄並進行一些處理,並決定處理是否成功。因此,對於每條記錄,我需要將BIT
類型的列更新爲0或1.在一個數據庫調用中更新多條記錄
處理完每個項目後,我確實不希望每次都擊中數據庫,而是將所有立即記錄更新。
有沒有辦法做到這一點或任何其他有效的方法。
嘗試使用SqlBulkCopy
類。
您可以使用它來有效地將大量行插入數據庫的表(例如爲此目的的臨時表)。爲了您的目的,聽起來這張表應該只是有您用來識別每行的關鍵字以及位值。
然後,您可以執行UPDATE命令將該表與原始數據合併。
通過這種方式,您可以在一次操作中將所有數據傳遞給服務器(或至少少量的操作...即使使用SqlBulkCopy
,您可能會發現將批量更新分爲多個優點),然後讓SQL Server執行將位值複製回原始表的工作。
聽起來很不錯。讓我執行並更新這個。 – Saksham 2014-12-04 09:14:37
降票的原因是什麼? – Saksham 2014-12-04 08:37:42
當你在內存中進行所有處理時,爲什麼你使用數據庫而不是數據文件?或DB中的單個二進制記錄/單元格。 – i486 2014-12-04 08:56:54
@ i486,因爲db中的數據是由另一個應用程序在不同平臺上輸入的。 – Saksham 2014-12-04 09:13:25