Tengo un procedimiento almacenado que, terminando con un SELECT, devuelve un conjunto de registros. Me puede llamar dentro de anoher procedimiento almacenado como este:

EXEC procedure @param

Cómo obtener la devolución de conjunto de registros? Gracias

InformationsquelleAutor pistacchio | 2010-06-14

5 Comentarios

  1. 3

    AFAIK, no se puede. Probablemente lo que quiero hacer es utilizar una función de la primera (o ambos) de los procedimientos. Las funciones pueden devolver sólo una cosa, pero que puede devolver una tabla. Los procedimientos almacenados pueden devolver varios resultados, pero no a otras funciones/procedimientos almacenados.

    por ejemplo:

    CREATE FUNCTION [dbo].[fn_GetSubordinates] (
        @sPersonID VARCHAR(10),
        @nLevels INT
    )
    RETURNS @tblSubordinates TABLE
    (
        Person_Id VARCHAR(10),
        Surname char(25),
        Firstname char(25)
    )
    AS
    BEGIN
        ...
  2. 1

    Usted puede hacer esto con una variable de salida en el procedimiento almacenado. Por ejemplo:

    CREATE PROCEDURE sp_HelloWorld   @MyReturnValue int OUT
    AS
    SELECT @MyReturnValue = 100
    Return @MyReturnValue 

    Llamar a este procedimiento almacenado, haga lo siguiente:

    DECLARE @TestReturnVal int 
    
    EXEC sp_HelloWorld @TestReturnVal output
    SELECT @TestReturnVal 
  3. 1

    Primero, NO puedes VOLVER un conjunto de registros de procedimiento almacenado. Por la vuelta, un procedimiento almacenado puede devolver sólo números enteros.

    Que usted ha mencionado SELECT declaración, que es un DQL y sólo para visualización propósito.

    La forma en que usted puede hacer para evitar este problema es que se puede asignar el conjunto de registros a una tabla temporal global que también se puede acceder dentro de la externa procedimiento almacenado.

Dejar respuesta

Please enter your comment!
Please enter your name here