首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将exec结果赋值给sql变量?

如何将exec结果赋值给sql变量?
EN

Stack Overflow用户
提问于 2010-02-11 23:58:14
回答 6查看 343K关注 0票数 122

如何将exec调用的结果赋值给SQL中的变量?我有一个名为up_GetBusinessDay的存储过程,它返回单个日期。

你能做这样的事情吗:

代码语言:javascript
复制
exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-12 00:41:27

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

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

代码语言:javascript
复制
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

使用OUTPUT参数调用存储过程:

代码语言:javascript
复制
DECLARE @OutputParameter  datetime
       ,@ReturnValue      int

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

输出:

代码语言:javascript
复制
0
2010-01-01 00:00:00.000
票数 109
EN

Stack Overflow用户

发布于 2012-11-14 16:56:27

如果您希望简单地返回一个整数,这将会起作用:

代码语言:javascript
复制
DECLARE @ResultForPos INT 
EXEC @ResultForPos = storedprocedureName 'InputParameter'
SELECT @ResultForPos
票数 63
EN

Stack Overflow用户

发布于 2016-08-26 00:03:52

代码语言:javascript
复制
declare @EventId int

CREATE TABLE #EventId (EventId int)

insert into #EventId exec rptInputEventId

set @EventId = (select * from #EventId)

drop table #EventId 
票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2245691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档