Home >> FAQs/Tutorials >> SQL Server FAQ

SQL Server FAQ - UPDATE Subquery Returning No Rows

By: FYIcenter.com

(Continued from previous topic...)

What Happens If the UPDATE Subquery Returns No Rows?

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 fyi_links (id, url, notes) 
  VALUES (0, 'www.fyicenter.com', 'Number one')
GO
(1 row(s) affected)

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

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

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

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

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

(Continued on next topic...)

  1. What Are DML (Data Manipulation Language) Statements?
  2. How To Create a Testing Table with Test Data?
  3. How To Insert a New Row into a Table with "INSERT INTO" Statements?
  4. How To Use Column Default Values in INSERT Statements?
  5. How to provide column names in INSERT Statements?
  6. What Happens If You Insert a Duplicate Key for the Primary Key Column?
  7. How To Insert Multiple Rows with One INSERT Statement?
  8. How To Update Values in a Table with UPDATE Statements?
  9. How To Update Multiple Rows with One UPDATE Statement?
  10. How to use old values to define new values in UPDATE statements?
  11. Is the Order of Columns in the SET Clause Important?
  12. How To Use Values from Other Tables in UPDATE Statements?
  13. What Happens If the UPDATE Subquery Returns No Rows?
  14. What Happens If the UPDATE Subquery Returns Multiple Rows?
  15. How To Delete an Existing Row with DELETE Statements?
  16. How To Delete Multiple Rows with One DELETE Statement?
  17. How To Delete All Rows with DELETE Statements?
  18. How To Delete All Rows with TRUNCATE TABLE Statement?

Related Articles:

More...


Other Tutorials/FAQs:

More...


Related Resources:

More...


Selected Jobs:

More...