IF EXISTS (SELECT 1 FRIN sys.objects where object_id=OBJECT_ID(N'[dbo].[testReturn_up]')AND type in (N'P'),N'PC')

  DROP PROC [dbo.]testReturn_up

GO

Create PROC [dbo.]testReturn_up

AS

  BEGIN

    SELECT 0;

    RETURN 2;

  END

 

TEST:

  DECLARE @a int

  exec @a = testReturn_up

  SELECT @

Result is:

0

2

BUT:

   exec testReturn_up

Result is just 0

 

So the answer is

exec取得的是结果集,而将执行过的Proc赋值给变量时,就是return的结果。所以步骤一的时候,result有2行记录,第一个0至不过是执行proc的响应。但是真正的@a = 2。

相关文章:

  • 2021-07-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-15
  • 2021-12-05
  • 2021-12-01
  • 2021-08-26
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-01
相关资源
相似解决方案