SQLUSA.com
SQL SERVER 2008 GRAND SLAM
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL JOBS SQL Server Training Scripts JOB BANK
  SQL Server 2008 Training Scripts  
  SQL Server 2005 Training Scripts  
News SQL Server Articles SQL Format

How to update large table with millions of rows?

The large update has to be broken down to small batches, like 10,000, at a time. This allows normal operation for the server. It is also easy to restart in case of interruption. WAITFOR DELAY can be included to slow down the batch processing.

-- T-SQL using the TOP function (SQL Server 2005 and on ) to limit UPDATE size

USE Northwind

 

WHILE (1 = 1)

BEGIN

    BEGIN TRANSACTION

    

    UPDATE TOP (1000) [Order Details]

    SET    Discount = 0.1

    WHERE  Discount != 0.1 -- predicate for filtering;

    

    IF @@ROWCOUNT = 0 -- terminating condition;

      BEGIN

        COMMIT TRANSACTION

        BREAK

      END

    

    COMMIT TRANSACTION

-- WAITFOR DELAY '00:00:01';

END

 

 

 

 

-- T-SQL using the ROWCOUNT setting to control update size

USE Northwind

 

SET ROWCOUNT  1000

 

WHILE (1 = 1)

  BEGIN

    BEGIN TRANSACTION

    

    UPDATE [Order Details]

    SET    Discount = 0.11

    WHERE  Discount != 0.11

    

    IF @@ROWCOUNT = 0

      BEGIN

        COMMIT TRANSACTION

        

        BREAK

      END

    

    COMMIT TRANSACTION

  END

 

SET ROWCOUNT  0

 

Related link:

High Volume Update Performance

 

Order SQL 2008 GRAND SLAM Today!
SQLUSA.com Home Page
SQL Server Training at www.sqlusa.com.
SQL Server 2008 Video Training at www.sqlusa.com.
SQL Server 2005 Training Videos at www.sqlusa.com.
Microsoft SQL Server 2000 Training Videos at www.sqlusa.com.

FREE SQL & Business Intelligence / OLAP Short Videos on YOUTUBE.com

Microsoft Community Contributor 2011
Invest in Your SUCCESS!

Search SQLUSA FREE SQL Server Articles & FREE T-SQL Scripts


Copyright 2005-2011, SMI Corp. All Rights Reserved.

SQL Server 2012 is a program product of Microsoft Corporation.
SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.