2013-12-19 59 views
0

我點名[usp_Movie_GetUserPaidList]一個存儲過程,需要兩個參數@MovieID INT, @UserName Nvarchar(250)並返回數據是這樣的運行SQL Server的另一存儲過程中的一個存儲過程,2008年

Exec usp_Movie_GetUserPaidList @MovieID, @UserName 

IsPaidUser | IsSubscribeUser 
    0     0 

現在在我的另一個存儲過程我有一些像

DECLARE @tblTemp1 TABLE (
     MovieID INT 
     ,IsPaidUser BIT 
     ,IsSubscribeUser BIT 
     ) 

在這裏,我知道@MovieID

現在我需要做的是這樣

INSERT INTO @tblTemp1 
SELECT @MovieID (EXEC [usp_Movie_GetUserPaidList] @MovieID,@userName) 

這顯然是不正確的。

幫我這麼做...謝謝你的時間。

回答

0

你需要採取輸出到另一個變量中,然後使用它:

DECLARE @Movieid int 
EXEC @Movieid = [usp_Movie_GetUserPaidList] @MovieID,@userName 

這裏的假設是: 1.你有@MovieID和@username和你在一起。 2.您存儲的proc usp_Movie_GetUserPaidList正在返回適當的值。

+0

是的我知道MovieID和UserName的正確值。 EXEC [usp_Movie_GetUserPaidList] @ MovieID,@ UserName將返回兩個值。我必須將另一個表中的thosE值與MovieID一起插入 –

+0

您只能從存儲過程返回一個值。如果你想要更多,那麼你必須使用OUT參數。所以,修改你存儲的proc usp_Movie_GetUserPaidList並添加兩個輸出參數。從你的存儲過程中調用它將是相同的,但你也需要在「Exec」命令中傳遞out參數。 –

+0

如果我的表將是\t'DECLARE @ tblTemp2 TABLE(\t \t \t IsPaidUser BIT \t \t,IsSubscribeUser BIT \t \t)'然後我可以很容易地插入使用'INSERT INTO @ tblTemp2 EXEC [usp_Movie_GetUserPaidList] @ MovieID,@ userName'但我有一個字段可以插入。謝謝你的建議。 –

0

爲什麼你不在存儲過程usp_Movie_GetUserPaidList的輸出中返回MovieID,因爲你也知道它。然後,您可以使用另一個存儲過程中的簡單插入,如:

INSERT INTO @tblTemp1 
EXEC [usp_Movie_GetUserPaidList] @MovieID,@userName 
相關問題