2014-01-22 23 views
0

下面是一個圖示來說明我的問題:處理的另一proc中有一個進程的結果

有一個存儲過程「subPROC」這需要一個優點水平 - 並返回誰享受此功德水平的學生證(在一個複雜的算法之後)。

現在,我必須編寫一個新的proC'superPROC',它取得了優異的成績,並且返回了學生的姓名。
爲了避免重寫邏輯,我會調用上述proc來接收學生ID。
此後,我將這些ID提供給查詢以獲取相應的名稱。

我如何調用'subPROC',接收它的輸出 - 並作爲我的'superPROC'代碼的一部分以IN子句中的逗號分隔列表形式提供。

我想避免創建臨時表,如果可能的話。

回答

0

你最好的選擇是使用一個User Defined Function,它可以在SP,函數甚至視圖中調用。

CREATE FUNCTION subPROC(@ID int) RETURNS int 
AS 
BEGIN 

return 1; 
END 

你的第二個功能是

CREATE FUNCTION superPROC(@ID int) RETURNS int 
AS 
BEGIN 

return 1 + @ID; 
END 

,你可以打電話給

select superPROC(5) 

這聽起來像你對我剛剛創建UDF which returns a table

相關問題