SQL Server存储过程返回分配给变量的值

SQL Server存储过程返回分配给变量的值,sql,sql-server,database,Sql,Sql Server,Database,我试图在另一个SP内执行一个SP。示例如下。 将@deal_1声明为int 将@deal_2声明为int set @deal_1 = (EXEC [my second SP] @para1 = 'xxxxx' ) --this returns single value set @deal_2 = (some other sub query) select @deal_1, @deal_2 我的问题是上面应该返回简单的两列结果,但我不能让它工作。由于错误或语法问题,无法保存 我得到的错误是“关

我试图在另一个SP内执行一个SP。示例如下。 将@deal_1声明为int 将@deal_2声明为int

set @deal_1 = (EXEC [my second SP] @para1 = 'xxxxx' ) --this returns single value
set @deal_2 = (some other sub query)

select @deal_1, @deal_2
我的问题是上面应该返回简单的两列结果,但我不能让它工作。由于错误或语法问题,无法保存


我得到的错误是“关键字“EXEC”附近的语法不正确。”

您的select语句无法绑定列
deal\u 1
deal\u 2
,并且没有要绑定的表(即select中的no
FROM
子句)。也许您想选择参数的值(注意
@
符号)


对于子查询,您可以使用
Select
语法来设置变量。乍一看是正确的。确切的语法错误是什么?您的
第二个sp
返回什么值?尝试此语法
EXEC@deal\u 1=storedprocedureName'InputParameter'
Try
select@deal\u 1、@deal\u 2
。你真的省略了代码中的
@
字符吗?我发现“关键字'EXEC'附近的语法不正确”。问题不在于选择,而是执行并将值赋回变量。它总是返回int值
select @deal_1 as deal_1, @deal_2 as deal_2