2013-05-29 106 views
1

我有一個Customer表,其中有5500萬條記錄。我需要更新增量列HHPK在SQL Server 2008 R2中更新表

例子:

12345....upto 55 million 

我用下面的腳本,但該腳本示數出與事務日誌數據庫變滿..

DB正在使用簡單恢復模式

DECLARE @SEQ BIGINT 
SET @SEQ = 0 
UPDATE Customers 
SET @SEQ = HHPK = @SEQ + 1 

是否有任何其他方式來完成該任務?請幫助

+0

表已經有標識列CustomerPK。我如何將HHPK更新爲與CustomerPK相同? – user2041076

回答

0

當你的表已有CustomerPK標識列,只需使用:

UPDATE dbo.Customers 
SET HHPK = CustomerPK 

當然 - 55萬行,這將是你的日誌文件中的應變。所以,你可能想這樣做,分批 - 最好小於5000行,以避免鎖升級效果會完全鎖定整個表:

UPDATE TOP (4500) dbo.Customers 
SET HHPK = CustomerPK 
WHERE HHPK IS NULL 

,並重復這一點,直到整個表已經更新。

不過說真的:如果你已經有INT IDENTITYCustomerPK - 爲什麼你需要第二個列,以保存相同的值?對我沒有多大意義......