T-SQL Muchas variables iguales

07/10/2003 - 10:08 por Oscar Heras | Informe spam
Hola a tod@s

Tengo el siguiente problema.

Existe un procedimiento en el que tengo que coger 20 variables,
llamadas @Var1, @Var2, @Var3... hasta 20

Necesito hacer un bucle de 20 veces, de forma que cada vez coga la
variable que lleve el contador. Éste es el código que tengo ahora,
pero me parece muy fuerte. ¿Alguien sabe como podria solucionarlo?

if @Descripcion is not NULL
WHILE @Contador < @CantidadVariables
BEGIN
set @Contador = @Contador + 1

if @Contador = 1
BEGIN
set @Descripcion = (SELECT
REPLACE(@Descripcion, '%' + right('00' + (cast(@contador as
varchar(100))), 2), @Var1))
CONTINUE
END
if @Contador = 2
BEGIN
set @Descripcion = (SELECT
REPLACE(@Descripcion, '%' + right('00' + (cast(@contador as
varchar(100))), 2), @Var2))
CONTINUE
END
..
Donde lo único que cambia es que si @Contador = 1, la variable a
utilizar es @var1. Si @Contador = 2, la variable sería @Var2...

GRACIAS
 

Leer las respuestas

#1 Tako
07/10/2003 - 10:15 | Informe spam
<Oscar Heras> wrote in message
news:
Hola a

Tengo el siguiente problema.

Existe un procedimiento en el que tengo que coger 20 variables,
llamadas @Var1, @Var2, @Var3... hasta 20

Necesito hacer un bucle de 20 veces, de forma que cada vez coga la
variable que lleve el contador. Éste es el código que tengo ahora,
pero me parece muy fuerte. ¿Alguien sabe como podria solucionarlo?

if @Descripcion is not NULL
WHILE @Contador < @CantidadVariables
BEGIN
set @Contador = @Contador + 1

if @Contador = 1
BEGIN
set @Descripcion = (SELECT
REPLACE(@Descripcion, '%' + right('00' + (cast(@contador as
varchar(100))), 2), @Var1))
CONTINUE
END
if @Contador = 2
BEGIN
set @Descripcion = (SELECT
REPLACE(@Descripcion, '%' + right('00' + (cast(@contador as
varchar(100))), 2), @Var2))
CONTINUE
END
..
Donde lo único que cambia es que si @Contador = 1, la variable a
utilizar es @var1. Si @Contador = 2, la variable sería @Var2...




¿ Por que no concatenas el valor de @Contador a '@var'?

Preguntas similares