2011-12-07 58 views
13

我有存儲過程A並希望通過傳遞@mydate參數來從A調用存儲過程B.存儲過程B就返回一個行集,我可以在程序A.如何從沒有臨時表的另一個存儲過程調用存儲過程(帶參數)

我研究這在谷歌,但沒有使用臨時表沒有發現任何進一步的使用。有沒有一個簡單的方法來得到這個沒有臨時表。

P.S .:我嘗試使用存儲過程作爲A和函數B輕鬆完成此操作。但想知道我是否可以僅通過使用存儲過程來完成它。

+0

嘗試http://stackoverflow.com/questions/209383/select-columns-from-result-set-of-存儲過程 - 你確切的問題是覆蓋在那裏。 – dash

回答

3

您可以調用Execute命令。

EXEC spDoSomthing @myDate 

編輯

既然你想回到data..that是有點困難。您可以使用用戶定義的函數來代替返回數據。

-2

您可以使用EXECUTE命令從另一個存儲過程調用存儲過程。

說你的程序是X.然後在X,你可以使用

EXECUTE PROCEDURE Y() RETURNING_VALUES RESULT;" 
+0

如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼樣本」按鈕(「{}」)以精確地設置格式並進行語法高亮顯示! –

+4

我不認爲這個T-SQL(SQL Server)語法.... –

0

可以在程序創建一個表變量,而不是夯實表並執行程序B,並通過以下查詢插入到臨時表。

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

你繼續操作。

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

你可以調用存儲過程像這裏面的存儲過程B.

CREATE PROCEDURE spA 
@myDate DATETIME 
AS 
    EXEC spB @myDate 

RETURN 0 
相關問題