我试图将存储过程的结果分配给另一个存储过程中的变量。所以代码看起来有点像这样:
DECLARE @val1 bit
DECLARE @tempTable TABLE
(
status bit
);
INSERT @tempTable
EXEC @val1 = dbo.pr2
现在我知道调用dbo.pr2会返回值1.但是当我运行调用存储过程时,它总是将值0赋给变量@ val1。
我在这里做错了吗?
(注意:dbo.pr2返回一个SELECT语句,它始终只是一个位。我无法改变这个存储过程。上面使用临时表来抑制在调用存储时传递此查询的结果程序执行)
答案 0 :(得分:0)
结果集不是存储过程的返回值 - 两者是非常不同的概念。因此,在select
中返回的任何内容都不会作为过程的返回值返回。
已经有一个问题需要处理获取存储过程的结果集 - Can I get the results of a stored procedure into a cursor within another stored procedure in SQL
远非理想,但......