Ayuda

28/10/2003 - 21:13 por luis suescun | Informe spam
hola a todos
tengo esto:

declare @variable varchar(10)
declare @codact varchar(2)
declare @tabla varchar(18)
declare @zona varchar(6)
declare @valor varchar(15)
Declare @campo varchar(30)

set @tabla='__estadisticazonas'
set @zona='010001'
set @codact='R7'
set @valor='100000'
set @campo='strcodigozona'

select @variable=rtrim(strcampoestadistica)from tblrangoscobranza where
strcodigo=@codact
print 'update '+@tabla+' set '+@variable+'='+@variable+'+'+@valor+' where
'+@campo+'="'+@zona+'"'
exec('update '+@tabla+' set '+@variable+'='+@variable+'+'+@valor+' where
'+@campo+'="'+@zona+'"')

con el print me muestra una exprecion logica
con el exec me da error

Servidor: mensaje 207, nivel 16, estado 3, línea 1
El nombre de columna '010001' no es válido.

Alguien podria ver que pasa y de paso me da una manito...?

Muchas Gracias.
 

Leer las respuestas

#1 Javier Loria
28/10/2003 - 22:11 | Informe spam
Hola Luis:
No son amigo del SQL Dinamico, pero me parece que en el codigo
escribiste un comilla doble " en vez de dos comillas simples '', entonces el
SQL interpreta que el valor de @zona es una columna, si cambias las comillas
dobles es muy probable que te funcione.
Si quieres leer un articulo en ingles sobre SQL Dinamico puedes revisar
el siguiente link:
http://www.algonet.se/~sommar/dynamic_sql.html

Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
luis suescun escribio:
hola a todos
tengo esto:

declare @variable varchar(10)
declare @codact varchar(2)
declare @tabla varchar(18)
declare @zona varchar(6)
declare @valor varchar(15)
Declare @campo varchar(30)

set @tabla='__estadisticazonas'
set @zona='010001'
set @codact='R7'
set @valor='100000'
set @campo='strcodigozona'

select @variable=rtrim(strcampoestadistica)from tblrangoscobranza
where strcodigo=@codact
print 'update '+@tabla+' set '+@variable+'='+@variable+'+'+@valor+'
where '+@campo+'="'+@zona+'"'
exec('update '+@tabla+' set '+@variable+'='+@variable+'+'+@valor+'
where '+@campo+'="'+@zona+'"')

con el print me muestra una exprecion logica
con el exec me da error

Servidor: mensaje 207, nivel 16, estado 3, línea 1
El nombre de columna '010001' no es válido.

Alguien podria ver que pasa y de paso me da una manito...?

Muchas Gracias.

Preguntas similares