MS SQL Server Concepts and Programming Question:
Download Questions PDF

How to use old values to define new values in UPDATE statements in MS SQL Server?

Answer:

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.globalguideline.com Wrong 9 2006-04-30
602 www.globalguideline.com/html Wrong 9 2007-05-21
603 www.globalguideline.com/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.globalguideline.com Wrong 1202 2006-04-30
802 www.globalguideline.com/html Wrong 1204 2007-05-19
803 www.globalguideline.com/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.

Download MS SQL Server Interview Questions And Answers PDF

Previous QuestionNext Question
How To Update Multiple Rows with One UPDATE Statement in MS SQL Server?Is the Order of Columns in the SET Clause Important in MS SQL Server?