Amigos (as)
Tengo un nuevo problema para compartirlo y pedirles ayuda para resolverlo, se trata de un query dinámico que me permite generar una UPDATE que tiene la siguiente forma:
SET @CadenaColumna = 'UPDATE ##MatrizVariables SET '
SET @CadenaColumna = @CadenaColumna +' '+ @NombreVariable +'=('
SET @CadenaColumna = @CadenaColumna +' '+ 'SELECT Valor FROM PlanillaVariables WHERE IdTablero='
SET @CadenaColumna = @CadenaColumna +' '+ @IdTablero +'AND' + 'IdVariable = '+ @IdVariable +'AND' + 'IdMes= '+ @Mes+')'
SET @CadenaColumna= @CadenaColumna + 'WHERE IdMes=' + @Mes
exec (@CadenaColumna)
cuando lo ejecuto SQL server 2005 me envía el siguiente mensaje:
Conversion failed when converting the varchar value 'UPDATE ##MatrizVariables SET CumPlanTrabajo=( SELECT Valor ' to data type int.
Algunas aclaraciones:
1.- La variable @CadenaColumna es un VARCHAR (600)
2.- La variable @NombreVariable representa a una columna de la tabla temporal ##MatrizVariables, dicha columna es un DECIMAL(18,2)
3.- Si se conociera el nombre de la columna de la tabla ##MatrizVariables que se quiere actualizar la sentencia sería de esta forma:
UPDATE ##MatrizVariables SET CumPlanTrabajo=(
SELECT Valor
FROM PlanillaVariables
WHERE IdTablero=@IdTablero
AND IdVariable = @IdVariable
AND IdMes=@Mes
)
WHERE IdMes=@Mes