在SQL Server 2008 R2中更新表



我有一个Customer表,它有5500万条记录。我需要用增量值

更新列HHPK

的例子:

12345....upto 55 million

我正在使用下面的脚本,但脚本是错误的事务日志数据库已满…

DB正在使用简单恢复模型

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

还有其他方法可以做那个任务吗?请帮助

由于您的表已经有一个CustomerPK标识列,只需使用:

UPDATE dbo.Customers
SET HHPK = CustomerPK

当然—对于5500万行,这将对您的日志文件造成压力。因此,您可能希望批量执行此操作—最好是少于5000行,以避免锁升级效果,这会独占地锁定整个表:

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

并重复此操作,直到整个表被更新。

但真的:如果你已经一个INT IDENTITYCustomerPK -为什么你需要第二个列来保存相同的值?对我来说没什么意义....

相关内容

  • 没有找到相关文章

最新更新