⟩ How to use old values to define new values in UPDATE statements in MS SQL Server?
If a row matches the WHERE clause in a UPDATE statement, existing values in this row can be used in expressions to provide new values in the SET clause. Existing values are represented by column names in the expressions. The tutorial exercise below shows you a good example:
SELECT * FROM ggl_links WHERE id >= 500
GO
id url notes counts created
601 www.rendc.org Wrong 9 2006-04-30
602 www.rendc.org/html Wrong 9 2007-05-21
603 www.rendc.org/sql Wrong 9 2007-05-23
UPDATE ggl_links SET id = id+200, counts = id*2
WHERE id >= 500
GO
(3 row(s) affected)
SELECT * FROM ggl_links WHERE id >= 500
GO
id url notes counts created
801 www.rendc.org Wrong 1202 2006-04-30
802 www.rendc.org/html Wrong 1204 2007-05-19
803 www.rendc.org/sql Wrong 1206 2007-05-19
This statement increased values in the id column by 200. It also updated the counts column with the newly increased id value.