2011-12-07 15 views
13

Ho memorizzato la procedura A e voglio chiamare la procedura di memorizzazione B da A passando un parametro @mydate. La stored procedure B restituirà un set di righe che posso ulteriormente utilizzare nella procedura A.Come chiamare una stored procedure (con parametri) da un'altra stored procedure senza tabella temporanea

L'ho cercato su Google ma non ho trovato nulla senza utilizzare una tabella temporanea. C'è un modo semplice per ottenere questo senza un tavolo temporaneo.

P.S .: Ho cercato di ottenere questo risultato utilizzando la stored procedure come A e una funzione come B facilmente. Ma voglio sapere se riesco a farlo solo usando le stored procedure.

+0

Prova http://stackoverflow.com/questions/209383/select-columns-from-result-set-of- stored-procedure - la tua domanda esatta è coperta lì. – dash

risposta

3

È possibile chiamare semplicemente il comando Esegui.

EXEC spDoSomthing @myDate 

Edit:

Dal momento che si desidera tornare data..that è un po 'più difficile. È possibile utilizzare invece le funzioni definite dall'utente che restituiscono i dati.

-2

È possibile chiamare una stored procedure da un'altra stored procedure utilizzando il comando EXECUTE.

Di 'la tua procedura è X. Poi, nel X è possibile utilizzare

EXECUTE PROCEDURE Y() RETURNING_VALUES RESULT;" 
+0

Se inserisci codice, XML o campioni di dati, ** PLEASE ** evidenzia quelle righe nell'editor di testo e fai clic sul pulsante "code samples" ('{}') sulla barra degli strumenti dell'editor per formattarlo in modo appropriato e sintassi evidenziarlo! –

+4

Non credo che questa sintassi T-SQL (SQL Server) .... –

0

È possibile creare variabili tabella anziché tavolo tamp nel procedimento A ed eseguire la procedura B e inserire nella tabella temporanea da sotto query.

DECLARE @T TABLE 
(
TABLE DEFINITION 
) 
. 
. 
. 
INSERT INTO @T 
EXEC B @MYDATE 

e si continua il funzionamento.

7
Create PROCEDURE Stored_Procedure_Name_2 
    (
    @param1 int = 5 , 
    @param2 varchar(max), 
    @param3 varchar(max) 

) 
AS 


DECLARE @Table TABLE 
(
    /*TABLE DEFINITION*/ 
    id int, 
    name varchar(max), 
    address varchar(max) 
) 

INSERT INTO @Table 
EXEC Stored_Procedure_Name_1 @param1 , @param2 = 'Raju' ,@param3 [email protected] 

SELECT id ,name ,address FROM @Table 
3

È possibile chiamata di stored procedure come questo all'interno di stored procedure B.

CREATE PROCEDURE spA 
@myDate DATETIME 
AS 
    EXEC spB @myDate 

RETURN 0 
Problemi correlati