首页 > 解决方案 > 使用多个参数存储存储过程结果

问题描述

我有两个接收多个参数的存储过程。

usp_stored_proc1它在存储过程结束时返回一个唯一标识符:SELECT column1

usp_stored_proc2应该column1usp_stored_proc1

这是我的代码:

EXEC usp_stored_proc1 'Test1', 'Para1', 'Para2'
EXEC usp_stored_proc2 SELECT column1, 'Para3', 'Para4'

这是我尝试将其usp_stored_proc1作为参数传递:

 EXEC usp_stored_proc2 usp_stored_proc1, 'Test1', 'Para1', 'Para2', 'Para3', 'Para4'

但失败了。

标签: sqlsql-server

解决方案


OUTPUT正如@GordonLinoff 在评论中所说,您可以像这样在存储过程中使用参数:

CREATE PROCEDURE usp_stored_proc1
    @FirstParam NVARCHAR(50),
    --rest of parameters
    @Column1 UNIQUEIDENTIFIER OUTPUT
AS
BEGIN
    SET NOCOUNT ON;
    --some stuff with input parameters
    
    SET @Column1 = NEWID()
END

并执行这样的存储过程:

DECLARE @Column1 UNIQUEIDENTIFIER

EXEC [dbo].usp_stored_proc1 'test', @Column1 OUTPUT

EXEC [dbo].usp_stored_proc2 @Column1,'param1'

推荐阅读