2013-05-29 108 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 - 为什么你需要第二个列,以保存相同的值?对我没有多大意义......