Update miTabla Set miTabla.micampo = (SELECT miOtraTabla.MiOtroCampo FROM miOtraTabla WHERE ...una c
Publicado: Vie Mar 23, 2007 10:24 am
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.
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.