存储过程为位变量分配不正确的值

时间:2015-01-19 16:45:58

标签: sql sql-server tsql

我试图将存储过程的结果分配给另一个存储过程中的变量。所以代码看起来有点像这样:

 DECLARE @val1  bit

 DECLARE @tempTable TABLE
(
    status bit
);

  INSERT @tempTable 
  EXEC @val1 = dbo.pr2

现在我知道调用dbo.pr2会返回值1.但是当我运行调用存储过程时,它总是将值0赋给变量@ val1。

我在这里做错了吗?

(注意:dbo.pr2返回一个SELECT语句,它始终只是一个位。我无法改变这个存储过程。上面使用临时表来抑制在调用存储时传递此查询的结果程序执行)

1 个答案:

答案 0 :(得分:0)

结果集不是存储过程的返回值 - 两者是非常不同的概念。因此,在select中返回的任何内容都不会作为过程的返回值返回。

已经有一个问题需要处理获取存储过程的结果集 - Can I get the results of a stored procedure into a cursor within another stored procedure in SQL

远非理想,但......