Perdón que te vuelva molestar pero realiza la consulta con el dato tipo tabla y me da el mismo resultado quizá no plante bien mi pregunta te doy mas información para se mas claro
mira
Tengo una variable la cual estoy manejando como NVARCHAR(@column), esta variable quiero que sea el nombre de una columna de una tabla esta tabla tiene columnas llamadas (IdConc0, IdConc1, IdConc2, …. Asta 37) estos datos quiero almacenarlos en la variable antes mencionada la cual le asigno el nombre y le cambio el numero en una sentencia WHILE de esta forma (set @column = 'IdConc'+ cast(@Contador as varchar)):
Mi problema esta cuando hago el SELECT para extraer el valor de la columna, este valor lo quiero guardar en otra variable de tipo INT(@IdConc) se supone que el valor que me debe de arrojar es un numero (select @IdConc = @column from DatosProyec;) pero no me arroja el valor numérico me arroja el contenido de la variable ((@column) que es el nombre de la columna (IdConc0 ‘o IdConc1 según el número que le corresponda del WHILE) por lo cual me arroja un error este error lo entiendo ya que estoy tratando de meter un data de tipo NVARCHAR(@column(IdConc0)) a un tipo INT(@IdConc) pero se supone que en el SELECT me debe de dar un numero pero no es así y como sé que es lo que me da la variable porque cuando cambio la variable @IdConc de tip INT a NVARCHAR lo que arroja es lo que les mencione (IdConc0, IdConc1, IdConc2, ….) que es el valor de la variable de la columna @column
Espero no los haya revuelto y les muestro mi código de cómo lo tengo:
declare @column nvarchar(7);
declare @IdConc int;
declare @Contador int;
set @Contador = 0;
while @Contador < 2
begin
set @column = 'IdConc'+ cast(@Contador as varchar);
select @IdConc = @column from DatosProyec;
set @Contador = @Contador + 1;
print @column;
print cast(@IdConc as varchar);
end
Espero me puedas ayudar y de antemano muchas gracias