Coger resultados de sp_executesql

10/12/2003 - 11:49 por Miguel Tubía | Informe spam
Hola,
en un procedimiento almacenado voy creando una consulta según los parámetros
del mismo, y al final hago una consulta com la siguiente:
declare @total smallint
declare @consulta varchar(500)
set @consulta=N'select count(*)' + @from+@where
La consulta se crea bien, pero luego quiero hacer esto, q me da error:
set @total=(exec sp_executesql @consulta)
pues la consulta calcula un count q quiero recuperar
¿Cómo lo puedo hacer? Al revisar la sintaxis del procedimiento me da un
error
Muchas gracias
Un saludo
 

Leer las respuestas

#1 Javier Loria
10/12/2003 - 13:14 | Informe spam
Hola:
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.
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.

Miguel Tubía escribio:
Mostrar la cita

Preguntas similares