Update miTabla Set miTabla.micampo = (SELECT miOtraTabla.MiOtroCampo FROM miOtraTabla WHERE ...una condición..) WHERE ...oTraCondicion.

23/03/2007 - 10:26 por José Luis Capel - Aicom | Informe spam
Hola,

Quisiera hacer un UPDATE de una tabla basado en la búsqueda de un resultado
en otra tabla.

Para ello hago una instrucción tal como esta:

Update miTabla Set miTabla.micampo = (SELECT miOtraTabla.MiOtroCampo FROM
miOtraTabla WHERE ...una condición..) WHERE ...oTraCondicion...

El campo miCampo de miTabla tiene la restricción de no admitir valores NULL
con lo cual si la sub-select no encuentra nada o el valor de miOtroCampo es
NULL el update fallará.

Entonces hice lo siguiente:

Update miTabla Set miTabla.micampo = (SELECT CASE WHEN
miOtraTabla.MiOtroCampo IS NULL THEN 0 ELSE miOtraTabla.MiOtroCampo END AS
ValorCalculado FROM miOtraTabla WHERE ...una condición..) WHERE
...oTraCondicion...

Pero el resultado viene a ser lo mismo: da un error de que el update fallará
por que la columna micampo no admite valores NULL.

¿Alquien puede darme una pista?

Saludos y gracias.
José Luis Capel
PD: Estoy usando SqlServer 2000.
 

Leer las respuestas

#1 Carlos Sacristan
23/03/2007 - 11:11 | Informe spam
Con la función ISNULL también te ocurre lo mismo?

"José Luis Capel - Aicom" escribió en el mensaje
news:
Hola,

Quisiera hacer un UPDATE de una tabla basado en la búsqueda de un
resultado
en otra tabla.

Para ello hago una instrucción tal como esta:

Update miTabla Set miTabla.micampo = (SELECT miOtraTabla.MiOtroCampo FROM
miOtraTabla WHERE ...una condición..) WHERE ...oTraCondicion...

El campo miCampo de miTabla tiene la restricción de no admitir valores
NULL
con lo cual si la sub-select no encuentra nada o el valor de miOtroCampo
es
NULL el update fallará.

Entonces hice lo siguiente:

Update miTabla Set miTabla.micampo = (SELECT CASE WHEN
miOtraTabla.MiOtroCampo IS NULL THEN 0 ELSE miOtraTabla.MiOtroCampo END AS
ValorCalculado FROM miOtraTabla WHERE ...una condición..) WHERE
...oTraCondicion...

Pero el resultado viene a ser lo mismo: da un error de que el update
fallará
por que la columna micampo no admite valores NULL.

¿Alquien puede darme una pista?

Saludos y gracias.
José Luis Capel
PD: Estoy usando SqlServer 2000.



Preguntas similares