Ayuda con sentencia sql en tiempo de ejecución.

04/10/2004 - 22:51 por Miguel Angel Valles Coral | Informe spam
Como puedo hacer que el siguiente procedimiento (o en todo caso pasarlo a
una función), me devuelva un dato a una variable cualquiera.?, es decir
asignar el resultado de la consulta a la variable @ValorDevuelto
Estoy casi medio día en esto y ya no doy más...


CREATE PROCEDURE spp_FactValor @Tabla varchar(20), @CampoBuscado as
varchar(20) , @CampoFiltro as varchar(20), @ValorFiltro varchar(20),
@ValorDevuelto as varchar(50) output
AS
Declare @StrSql nvarchar(200) , @Cadena varchar(40)
Set @StrSql = 'Select ' + @CampoBuscado + ' from ' + @Tabla + ' where ' +
@CampoFiltro + ' = ' + @ValorFiltro
exec sp_ExecuteSQL @StrSql

Muchas gracias de antemano..

Atentamente.

Preguntas similare

Leer las respuestas

#1 Adrian D. Garcia
04/10/2004 - 23:35 | Informe spam
Copiado de una respuesta anterior del foro, enviado por Javier Loria:

Hola:

Este es un COPY-PASTE de un posteo de hace tiempo, espero te sirva...

No son amigo del SQL Dinamico, por mil razones y siempre que veo una
pregunta de estas recomiendo la lectura del articulo de las Virtudes y
Maldades del SQL Dinamico: http://www.algonet.se/~sommar/dynamic_sql.html
En todo caso la sintaxis seria:
=ÞCLARE @total SMALLINT
DECLARE @consulta NVARCHAR(500)
DECLARE @from VARCHAR(100)
DECLARE @where VARCHAR(100)
SET @From=' FROM authors '
SET @Where=' WHERE state=''CA'' '
set @consulta=N'select @Numero=count(*)' + @from+@where

EXEC sp_executesql @Consulta, N'@Numero INT OUTPUT', @Total OUTPUT
PRINT 'Encontre: '+CAST(@Total AS VARCHAR(6))
== La documentacion no es muy clara sobre el uso de OUTPUT.

El "truco" es en la sentencia se usa el parameto @Numero, que NO ESTA
DECLARADO en la consulta, sino que se declara como una variable OUTPUT a un
parametro adicional que se pasa al sp_executesql

Saludos,


Javier Loria


Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Miguel Angel Valles Coral" wrote in message
news:%
Como puedo hacer que el siguiente procedimiento (o en todo caso pasarlo a
una función), me devuelva un dato a una variable cualquiera.?, es decir
asignar el resultado de la consulta a la variable @ValorDevuelto
Estoy casi medio día en esto y ya no doy más...


CREATE PROCEDURE spp_FactValor @Tabla varchar(20), @CampoBuscado as
varchar(20) , @CampoFiltro as varchar(20), @ValorFiltro varchar(20),
@ValorDevuelto as varchar(50) output
AS
Declare @StrSql nvarchar(200) , @Cadena varchar(40)
Set @StrSql = 'Select ' + @CampoBuscado + ' from ' + @Tabla + ' where '


+
@CampoFiltro + ' = ' + @ValorFiltro
exec sp_ExecuteSQL @StrSql

Muchas gracias de antemano..

Atentamente.


Respuesta Responder a este mensaje
#2 Miguel Angel Valles Coral
05/10/2004 - 00:47 | Informe spam
Muchísimas gracias mi estimado Adrian.
Definitivamente una de las mejores formas de aprender más y más es
preguntando y sin personas como tú esta tarea sería muy complicada.
Gracias.


"Adrian D. Garcia" escribió en el mensaje
news:
Copiado de una respuesta anterior del foro, enviado por Javier Loria:

Hola:

Este es un COPY-PASTE de un posteo de hace tiempo, espero te sirva...

No son amigo del SQL Dinamico, por mil razones y siempre que veo una
pregunta de estas recomiendo la lectura del articulo de las Virtudes y
Maldades del SQL Dinamico: http://www.algonet.se/~sommar/dynamic_sql.html
En todo caso la sintaxis seria:
==> DECLARE @total SMALLINT
DECLARE @consulta NVARCHAR(500)
DECLARE @from VARCHAR(100)
DECLARE @where VARCHAR(100)
SET @From=' FROM authors '
SET @Where=' WHERE state=''CA'' '
set @consulta=N'select @Numero=count(*)' + @from+@where

EXEC sp_executesql @Consulta, N'@Numero INT OUTPUT', @Total OUTPUT
PRINT 'Encontre: '+CAST(@Total AS VARCHAR(6))
==> La documentacion no es muy clara sobre el uso de OUTPUT.

El "truco" es en la sentencia se usa el parameto @Numero, que NO ESTA
DECLARADO en la consulta, sino que se declara como una variable OUTPUT a


un
parametro adicional que se pasa al sp_executesql

Saludos,


Javier Loria


Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Miguel Angel Valles Coral" wrote in message
news:%
> Como puedo hacer que el siguiente procedimiento (o en todo caso pasarlo


a
> una función), me devuelva un dato a una variable cualquiera.?, es decir
> asignar el resultado de la consulta a la variable @ValorDevuelto
> Estoy casi medio día en esto y ya no doy más...
>
>
> CREATE PROCEDURE spp_FactValor @Tabla varchar(20), @CampoBuscado as
> varchar(20) , @CampoFiltro as varchar(20), @ValorFiltro varchar(20),
> @ValorDevuelto as varchar(50) output
> AS
> Declare @StrSql nvarchar(200) , @Cadena varchar(40)
> Set @StrSql = 'Select ' + @CampoBuscado + ' from ' + @Tabla + ' where


'
+
> @CampoFiltro + ' = ' + @ValorFiltro
> exec sp_ExecuteSQL @StrSql
>
> Muchas gracias de antemano..
>
> Atentamente.
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida