No tiene mucho sentido hacer una subconsulta de selección, dentro del WHERE sin las intrucciones IN o EXISTS....
Algo ANSI compatible podría ser:
Código SQL
[-]
UPDATE CMPNASLINSUP
SET CMPNASLINSUP.CDGOORDEN = (SELECT CMPNAS.NMROORDEN
FROM CMPNAS
WHERE CMPNASLINSUP.CDGOCMPNA = CMPNAS.CDGO)
WHERE CMPNASLINSUP.CDGOORDEN = 'A00000000'
AND EXISTS (
SELECT 1
FROM CMPNAS
WHERE CMPNASLINSUP.CDGOCMPNA = CMPNAS.CDGO
)
Pero algunos motores soportan algo mas, esto extraí de la ayuda de MsSql2000
Código SQL
[-]UPDATE titles
SET ytd_sales =
(SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
Saludos!