我已經使用BulkCopy
命令將行從一個表傳輸到另一個表,其中包含大約3到5百萬行的批量數據。我想更新這些行。是否有與SQL Server 2008中的BulkCopy類似的BulkUpdate命令
是否有任何類似於BulkCopy
命令的BulkUpdate
命令?我在C#中使用ASP.NET。
我已經使用BulkCopy
命令將行從一個表傳輸到另一個表,其中包含大約3到5百萬行的批量數據。我想更新這些行。是否有與SQL Server 2008中的BulkCopy類似的BulkUpdate命令
是否有任何類似於BulkCopy
命令的BulkUpdate
命令?我在C#中使用ASP.NET。
不,沒有。
問:什麼是「紫膠」?
這威力幫助:
http://itknowledgeexchange.techtarget.com/itanswers/bulk-update-in-sql-server-2005/
假設你有DISTICT值的列,來顯示哪 行是這兩個表之間這可以用一個簡單的 完成更新聲明。
UPDATE TableA
SET TableA.A1 = TableB.B1,
TableA.A2 = TableB.B2
FROM TableB
WHERE TableA.A3 = TableB.B3
如果你擔心創建一個龐大的交易,你可以 批量操作成小塊。這是通過TOP 關鍵字完成的。
UPDATE TOP (1000) TableA
SET TableA.A1 = TableB.B1,
TableA.A2 = TableB.B2
FROM TableB
WHERE TableA.A3 = TableB.B3
AND TableA.A1 <> TableB.B1
AND TableA.A2 <> TableB.B2
你可以把成一個圈......
這裏是另一個鏈接(基本一致的解決方案):
http://en.wikipedia.org/wiki/Lakh – 2012-01-14 06:30:50
@ todda.speot.is - 謝謝:) – paulsm4 2012-01-14 07:02:14
一種常見的方法這裏是:
免責聲明:我的項目Bulk Operations
批量操作圖書館的主人允許插入,刪除,更新和合並百萬在幾秒鐘內排成行。
如果您已經知道SqlBulkCopy類,那麼學習和使用非常容易。
var bulk = new BulkOperation(connection);
// ... Mappings ....
bulk.BulkUpdate(dt);
這是T-SQL'UPDATE'命令....只是在基於集合的方法(而不是逐行)上執行更新操作,並在SQL Server上執行它們 - 不要拉下整個數據,更新它,然後發回。 – 2012-01-14 08:42:44