使用SQLBulkCopy插入/更新數據庫

asp.net sqlbulkcopy

我有一個帶記錄的數據表。我正在使用SqlBulkCopy將記錄插入到Sql表中。它運行正常。下一次獲取具有相同記錄且數據更改的數據表時,SqlBulkCopy正在插入另一組記錄而不更新以前的詳細信息。如何我可以使用SqlBulkCopy更新Sql表嗎?請幫忙。

謝謝,Vix

專家解答

就像AdaTheDev提到的那樣,SqlBulkCopy只能插入,但是有一個允許執行Upsert操作的替代庫。

免責聲明 :我是Bulk Operations項目的所有者

批量操作庫有一個方法“ BulkMerge ”,它根據指定的鍵插入或更新行。

var bulk = new BulkOperation(connection);

bulk.ColumnMappings.Add("ID", true);
bulk.ColumnMappings.Add("Column1");
bulk.ColumnMappings.Add("Column2");
bulk.ColumnMappings.Add("Column3");

bulk.BulkMerge(dt);

熱門答案

SqlBulkCopy僅用於插入記錄,而不是按照此處的說明更新它們。您需要使用其他技術來進行批量更新。

例如,您可以將SqlBulkCopy轉換為臨時表,然後運行一些SQL從那裡更新到主表。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因