如何将EXEC结果分配给SQL变量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

如何将EXEC调用的结果分配给SQL中的变量?我有一个存储的过程叫做up_GetBusinessDay返回一个日期。

你能这样做吗?

exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1
提问于
用户回答回答于

我总是使用返回值来传递错误状态。如果您需要传回一个值,我会使用一个输出参数。

带有输出参数的示例存储过程:

CREATE PROCEDURE YourStoredProcedure 
(
    @Param1    int
   ,@Param2    varchar(5)
   ,@Param3    datetime OUTPUT
)
AS
IF ISNULL(@Param1,0)>5
BEGIN
    SET @Param3=GETDATE()
END
ELSE
BEGIN
    SET @Param3='1/1/2010'
END
RETURN 0
GO

调用带有输出参数的存储过程:

DECLARE @OutputParameter  datetime
       ,@ReturnValue      int

EXEC @ReturnValue=YourStoredProcedure 1,null, @OutputParameter OUTPUT
PRINT @ReturnValue
PRINT CONVERT(char(23),@OutputParameter ,121)

产出:

0
2010-01-01 00:00:00.000
用户回答回答于

如果只想返回一个整数,这个方法就能工作:

DECLARE @ResultForPos INT 
EXEC @ResultForPos = storedprocedureName 'InputParameter'
SELECT @ResultForPos

扫码关注云+社区