Como ejecutar un query armando el transac sql en el procedimiento

10/05/2007 - 23:06 por Diego Ruiz | Informe spam
Hola!!! agradezco mucho a quien me pueda ayudar...
Quiero hacer un procedimiento almacenado dinamico, es decir, que en el
cuerpo de este, se arme la instruccion sql dinamicamente, segun los
parametros que le pase. estos parametros pueden ser una porcion de la
instruccion sql. Por ejemplo

Create proc dbo.Prueba (@campos varchar(200), @tabla varchar(50),
@condicion) as
begin
declare @strSql varchar(2500)
Set @strSql='SELECT '+ campos+ ' FROM '+ @tabla + ' WHERE '+@condicion
EXEC @strSql pero me sale el error de que no encuentra el procedimiento
almacenado 'SELECT .'
end

Gracias por la ayudita!!!
Diego Ruiz
 

Leer las respuestas

#1 Alejandro Mesa
11/05/2007 - 15:23 | Informe spam
Diego Ruiz,

Te recomiendo leas este par de articulos sobre este tema. Estoy seguro que
despues de leerlos, podras escojer la forma que mas se adapte a tus
condiciones.

Las virtudes y maldades del SQL dinámico
http://www.hayes.ch/sql/sql_dinamico.html

Dynamic Search Conditions in T-SQL
http://www.sommarskog.se/dyn-search.html


AMB


"Diego Ruiz" wrote:

Hola!!! agradezco mucho a quien me pueda ayudar...
Quiero hacer un procedimiento almacenado dinamico, es decir, que en el
cuerpo de este, se arme la instruccion sql dinamicamente, segun los
parametros que le pase. estos parametros pueden ser una porcion de la
instruccion sql. Por ejemplo

Create proc dbo.Prueba (@campos varchar(200), @tabla varchar(50),
@condicion) as
begin
declare @strSql varchar(2500)
Set @strSql='SELECT '+ campos+ ' FROM '+ @tabla + ' WHERE '+@condicion
EXEC @strSql pero me sale el error de que no encuentra el procedimiento
almacenado 'SELECT .'
end

Gracias por la ayudita!!!
Diego Ruiz

Preguntas similares