lunes, 25 de junio de 2007

SQL Server..¿error?

No se si sera un error de SQL Server 2000 ó una condición de seguridad la cuál por mi poca experiencia en el tema desconozco. Pero esta "anormalidad" funciona mas o menos así.

Si tienen un stored procedure que realiza una asignación a una variable por medio de una consulta y dentro de un ciclo. Es decir...

WHILE (condicion_del_while)
begin
select @var = var_columna from mytabla where (condition)

if @var is not null
--realizar acciones con @var
endif
end

Si el contenido de @VAR es distinto de null y el select retorna un NULL, no se va a pisar el valor de @var.
Si la var_columna en cada vuelta del ciclo tiene los valores null, null, 3, null, null ; @var va a tener los valores null, null, 3, 3, 3

¿error o no?. Como sea, puede complicar muchisimo la vida, sobre todo si la accion que se realiza dentro de la condicion IF es un Update o un Insert.

No hay comentarios: