Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2007, 02:09
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Problema con SP "Dinamico"

Hola buenos días,

Verán, tengo un SP el cual le paso una serie de parametros, entre ellos uno de salida pNumElementos para recibir el numero de registros que tengo.

Bien, el problema es que en la empresa, dentro de este SP, creamos la sentencia en modo texto @sql = @sql + N'mas consulta' .... y despues al final de nuestro SP, llamamos a otro para que solo se nos devuelva los 5 registros primeros (Basandose en mas parametros que mandamos antes)

La estructura es algo asi:
Código:
ALTER MI_SP parametro1, parametro2, ..., pNumElementos INT OUTPUT
AS
DECLARE @sql NVARCHAR(4000)
SET @SQL = N'......................'
SET @SQL = @SQL + N'.............'

EXEC OTRO_SP parametro1, parametro2, ...., @SQL
Bien, esto me devuelve 5 registros, sin embargo, si ejecuto este SQL antes, sin usar ese SP, y establezco: SELECT @numElementos = @@ROWCOUNT, me devuelve el numero de registros existentes realmente.

Perfecto, pero claro, tengo que ejecutar ese SP tb, por lo que me devuelve dos consultas el Procedimiento almacenado.

Mi pregunta es, podría saber que numero de registros tiene la consulta @SQL antes de ejecutar el "OTRO_SP" y que no suponga devolverme todos los registros ?

Hacer algo asi:
Código:
ALTER MI_SP parametro1, parametro2, ..., pNumElementos INT OUTPUT
AS
DECLARE @sql NVARCHAR(4000)
SET @SQL = N'......................'
SET @SQL = @SQL + N'.............'

EXEC sp_executesql @SQL
SET @pNumElementos = @@ROWCOUNT

EXEC OTRO_SP parametro1, parametro2, ...., @SQL
Pero sin que se me devuelva los resultados de "EXEC sp_executesql @SQL"
__________________
Charlie.