2011-12-07 21 views
13

Mam procedurę przechowywaną A i chcę wywołać procedurę składowania B z A, przekazując parametr @mydate. Procedura przechowywana B zwróci zestaw wierszy, który będę mógł dalej wykorzystać w procedurze A.Jak wywołać procedurę składowaną (z parametrami) z innej procedury składowanej bez tabeli tymczasowej

Sprawdziłem to w Google, ale niczego nie znalazłem bez użycia tabeli tymczasowej. Czy istnieje prosty sposób na uzyskanie tego bez tabeli tymczasowej.

P.S .: Próbowałem zrobić to za pomocą procedury przechowywanej jako A i funkcji jako B łatwo. Ale chcę wiedzieć, czy mogę to zrobić tylko za pomocą procedur przechowywanych.

+0

Spróbuj http://stackoverflow.com/questions/209383/select-columns-from-result-set-of- procedura przechowywana - twoje dokładne pytanie jest tam omówione. – dash

Odpowiedz

3

Możesz po prostu wywołać polecenie Execute.

EXEC spDoSomthing @myDate 

Edit:

Skoro chcesz powrócić data..that to trochę trudniejsze. Zamiast tego możesz użyć funkcji zdefiniowanych przez użytkownika, które zwracają dane.

-2

Można wywołać procedurę składowaną z innej procedury składowanej za pomocą polecenia WYKONAJ.

Wypowiedz procedura jest X. Następnie w X można użyć

EXECUTE PROCEDURE Y() RETURNING_VALUES RESULT;" 
+0

Po przesłaniu kodu, XML lub próbek danych, ** PLEASE ** podświetlić te linie w edytorze tekstu i kliknij przycisk "próbki kodu" ('{}') na pasku narzędzi edytora, aby ładnie sformatować i podświetlić składnię! –

+4

Nie sądzę, że ta składnia T-SQL (SQL Server) .... –

0

Można utworzyć zmienną tabeli zamiast tabeli nabić w procedury A i wykonać procedurę B i wstawić do tabeli temp przez poniżej zapytania.

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

i kontynuujesz pracę.

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

możesz zadzwonić do procedury przechowywanej tak wewnątrz procedury przechowywanej B.

CREATE PROCEDURE spA 
@myDate DATETIME 
AS 
    EXEC spB @myDate 

RETURN 0 
Powiązane problemy