sql 2000: Guardar resultado de query dinamico

28/01/2008 - 17:15 por Juan Carlos Mendoza | Informe spam
Tengo un query dinamico mas o menos asi:


Declare @sqlcmd varchar(50)
@filas smallint

set @sqlcmd = 'select count(*) from mytabla'
exec @sqlcmd

como cargo a @filas el valor resultante de ejecutar @sqlcmd el cual me
devuelve un valor numerico?

Ojo que las sentencias que estoy planteando no es mi problema real, ya
que lo que realmente estoy obteniendo es la cantidad de registros de
todas las tablas de una base de datos, para lo cual uso un cursor para
barrer sysobjects para obtener cada nombre tabla y armar un query
dinamico, para obtener la cantidad de registros de cada tabla.

Saludos,

Juan Carlos

Preguntas similare

Leer las respuestas

#1 Gux (MVP)
28/01/2008 - 17:31 | Informe spam
Este es un ejemplo del MVP Erland Sommarskog:

SELECT @sql N' SELECT @cnt = COUNT(*) FROM dbo.' + quotename(@tbl) +
N' WHERE LastUpdated BETWEEN @fromdate AND ' +
N' coalesce(@todate, ''99991231'')'
SELECT @params = N'@fromdate datetime, ' +
N'@todate datetime = NULL, ' +
N'@cnt int OUTPUT'
EXEC sp_executesql @sql, @params, '20060101', @cnt = @count OUTPUT


Aprenda los detalles en:

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


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Juan Carlos Mendoza" wrote:

Mostrar la cita
#2 Juan Carlos Mendoza
28/01/2008 - 17:48 | Informe spam
plantee el query y previo Declare respectivo, me sale el error que
"must declare @cnt" donde @cnt esta dentro del @sql como un
texto. leere el link sugerido.

Gracias.

On 28 ene, 11:31, Gux (MVP) wrote:
Mostrar la cita
#3 Gux (MVP)
28/01/2008 - 17:57 | Informe spam
Otro ejemplo del mismo artículo :-)

DECLARE
@sql nvarchar(4000), -- nvarchar(MAX) en SQL 2005.
@col sysname,
@min varchar(20)

SELECT @col = N'au_fname'
SELECT @sql = N'SELECT @min = convert(varchar(20), MIN(' + @col +
N')) FROM authors'

EXEC sp_executesql @sql, N'@min varchar(20) OUTPUT', @min OUTPUT

SELECT @min

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Juan Carlos Mendoza" wrote:

Mostrar la cita
#4 Juan Carlos Mendoza
28/01/2008 - 18:17 | Informe spam
Gracias.

Lei el articulo (muy bueno!) y modifique exitosamente las sentencias
que estaba preparando.

Saludos

Juan Carlos

On 28 ene, 11:57, Gux (MVP) wrote:
Mostrar la cita
Ads by Google
Search Busqueda sugerida