Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda con ejecutar una sentencia select en Transact

Estas en el tema de Ayuda con ejecutar una sentencia select en Transact en el foro de Programación General en Foros del Web. Hola a todos, necesito ejecutar en un procediemiento almacenado, una sentencia sql formado por una parte fija, y otra que va variando y que voy ...
  #1 (permalink)  
Antiguo 15/03/2004, 10:30
 
Fecha de Ingreso: febrero-2004
Mensajes: 6
Antigüedad: 20 años, 2 meses
Puntos: 0
Ayuda con ejecutar una sentencia select en Transact

Hola a todos, necesito ejecutar en un procediemiento almacenado, una sentencia sql formado por una parte fija, y otra que va variando y que voy concatenando en una variable string.

es del tipo: SELECT @Total = Sum(Total) FROM Tabla WHERE
Id = @Id
(esta es la parte fija)

AND Fecha BETWEEN '01/01/04' AND '15/03/2004'
(esto es la parte variable que introduzco en una variable @Str)


Como hago para ejecutar esta sentencia completa?¿

Haciendo esto:
SELECT @Total = Sum(Total) FROM Tabla WHERE Id = @Id + (@Str)
me da error.

Haciendo un exec('SELECT @Total = Sum(Total) FROM Tabla WHERE Id = @Id' + @str)
también me da error

Incluso haciendo esto:
Set @Total = SELECT Sum(Total) FROM Tabla WHERE Id = @Id + (@Str)
también me da error.

ALguien sabe como hacerlo bien?¿?

Muchas gracias por todo.
  #2 (permalink)  
Antiguo 15/03/2004, 11:29
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 4 meses
Puntos: 11
intenta esto

Declare @cSQL as nVarChar(1000), @cFiltro as char(60)
Set @cFiltro = 'campo=1'
select @cSQL Select * from mi_tabla where ' + @cFiltro

exec sp_sqlexec @cSQL

el truco esta en SP_SqlExec que te permite ejecutar el codigo contenido en una variable. o incluso lo puedes pasar directamente

excec Sp_sqlExec 'Select * from mi_tabla'

Saludos.
__________________
Jorge Mota
Blog
Gubiz estafa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:28.