Error de statement de actualización: Subconsulta devolvió más de 1 valor

Estoy tratando de actualizar todos los loggings en una columna para que comiencen con 'CD', por ejemplo, DCE206 se convertiría en CDE206.

UPDATE table SET column = REPLACE(column1, 'DC', 'CD') WHERE column1 LIKE 'DC%' 

Estoy usando la statement de actualización anterior; sin embargo, aparece el siguiente error

'Subquery devolvió más de 1 valor. Esto no está permitido cuando la subconsulta sigue a =,! =, <, <=,>,> = O cuando la subconsulta se usa como una expresión. '

¿Hay algo que pueda cambiar en la statement para que esto suceda o tengo que investigar usando un cursor?

Estoy usando SQL Server 2000.

Es posible que no pueda get este error de ese código. El error debe ser de alguna otra parte del código.

¿Tiene algo más que ejecutar en la actualización? ¿Un gatillo?

Esa statement que ha publicado no generará ese error: no tiene subconsulta.

Esto parece funcionar bien de mi lado, 2005. ¿Es esto parte de un lote de consultas, quizás otra actualización está causando este post?

Editar: publicó esto en SQL 2000, sin errores.

 create table table1 (id int identity, column1 varchar(10)) insert into table1 values ('DCE1') insert into table1 values ('DCE2') insert into table1 values ('DCE3') insert into table1 values ('DCE4') insert into table1 values ('DCE5') UPDATE table1 SET column1 = REPLACE(column1, 'DC', 'CD') WHERE column1 LIKE 'DC%' select * from table1 drop table table1 

Parece que tienes un error tipográfico. Debería ser:

"SET column1 ="

en lugar de

"SET column ="

(falta un '1')

Si obtiene el error que indica a partir de una ACTUALIZACIÓN simple, lo más probable es que tenga un activador de ACTUALIZACIÓN en la tabla, y el error proviene del activador.

Sin embargo, el código que publicaste ciertamente no es el código con el que tienes problemas, porque "tabla" es una palabra key y no puede ser el nombre de la tabla que estás actualizando.