• If you can do it using a single query then why bother with a cursor?

    SQL Server is optimised for set based operations.  I tend to view cursors as an option of last resort.  You can get locking problems with them because they itterate through recordsets on a row by row basis.

    If you are worried that a single query would be too punishing i.e. updating 1,000,000 rows at a time then you can break the job down into smaller chunks by being careful with your WHERE clauses and/or including SET ROWCOUNT