|
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...)
- What Are DML (Data Manipulation Language) Statements?
- How To Create a Testing Table with Test Data?
- How To Insert a New Row into a Table with "INSERT INTO" Statements?
- How To Use Column Default Values in INSERT Statements?
- How to provide column names in INSERT Statements?
- What Happens If You Insert a Duplicate Key for the Primary Key Column?
- How To Insert Multiple Rows with One INSERT Statement?
- How To Update Values in a Table with UPDATE Statements?
- How To Update Multiple Rows with One UPDATE Statement?
- How to use old values to define new values in UPDATE statements?
- Is the Order of Columns in the SET Clause Important?
- How To Use Values from Other Tables in UPDATE Statements?
- What Happens If the UPDATE Subquery Returns No Rows?
- What Happens If the UPDATE Subquery Returns Multiple Rows?
- How To Delete an Existing Row with DELETE Statements?
- How To Delete Multiple Rows with One DELETE Statement?
- How To Delete All Rows with DELETE Statements?
- How To Delete All Rows with TRUNCATE TABLE Statement?
|