在SQL Server 2008中的另一个存储过程中运行一个存储过程

时间:2013-12-19 05:06:02

标签: sql database sql-server-2008 select stored-procedures

我有一个名为[usp_Movie_GetUserPaidList]的存储过程,它接受两个参数@MovieID INT, @UserName Nvarchar(250)并返回类似这样的数据

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 )

这显然不正确。

帮助我这样做...谢谢你的时间。

2 个答案:

答案 0 :(得分:0)

您需要在另一个变量中输出,然后使用它:

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

这里的假设是: 1.你有@MovieID和@userName。 2.存储的proc usp_Movie_GetUserPaidList返回正确的值。

答案 1 :(得分:0)

为什么不在存储过程MovieID的输出中返回usp_Movie_GetUserPaidList,因为您也知道它。然后,您可以在另一个存储过程中使用简单插入,如:

INSERT INTO @tblTemp1
EXEC [usp_Movie_GetUserPaidList] @MovieID,@userName