MS SQL Server Concepts and Programming Question:
Download Questions PDF

What Happens If the UPDATE Subquery Returns No Rows in MS SQL Server?

MS SQL Server Interview Question
MS SQL Server Interview Question

Answer:

If you use a subquery to assign new values in the SET clause in an UPDATE statement, and the subquery returns no rows for an outer row, SQL Server will provide a NULL value to the SET clause. The tutorial exercise below shows you a good example:

-- insert a new row
INSERT INTO ggl_links (id, url, notes)
VALUES (0, 'www.globalguideline.com', 'Number one')
GO
(1 row(s) affected)

-- view old values
SELECT * FROM ggl_links WHERE id = 0
GO
id url notes counts created
0 www.globalguideline.com Number one NULL 2007-05-23

-- make sure there is no matching row in fyi_rates
SELECT * FROM ggl_rates WHERE id = 0
GO
0 rows

-- update a subquery returning no rows
UPDATE ggl_links SET notes = (
SELECT comment FROM ggl_rates
WHERE ggl_rates.id = ggl_links.id
)
WHERE id = 0
(1 row(s) affected)

-- view new values
SELECT * FROM ggl_links WHERE id = 0
GO
id url notes counts created
0 www.globalguideline.com NULL NULL 2007-05-23

Column "notes" gets updated with NULL if there is no return rows in the subquery.

Download MS SQL Server Interview Questions And Answers PDF

Previous QuestionNext Question
How To Use Values from Other Tables in UPDATE Statements in MS SQL Server?What Happens If the UPDATE Subquery Returns Multiple Rows in MS SQL Server?