INF: Aggregates and SET Clause in UPDATE StatementID: Q90477
|
In an UPDATE statement, an aggregate function cannot appear directly
in the SET list. For example, an attempt to execute a query such as,
UPDATE <table name>
SET <column name> = count(*)
FROM <table names>
WHERE <condition List>
An aggregate may not appear in the set list of an UPDATE statement.
(Msg 157, Level 15, State 1).
When an aggregate appears in the SET list of an UPDATE statement as
above, there exists an ambiguity as to whether the associated WHERE
clause qualifies the rows to be updated or it qualifies the rows on
which to apply the aggregate function. The correct way to do this is:
UPDATE <table name>
SET <column name> = (select count(*) from <table name>
where <aggregate condition>)
FROM <table names>
WHERE <update condition>.
Additional query words: 4.20
Keywords : kberrmsg SSrvServer
Version :
Platform :
Issue type :
Last Reviewed: March 16, 1999