如何将一个执行结果分配给一个SQLvariables?
如何将SQL调用的结果分配给SQL中的variables? 我有一个名为up_GetBusinessDay
的存储up_GetBusinessDay
,它返回一个date。
你可以做这样的事情:
exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1
我总是使用返回值来传回错误状态。 如果你需要传回一个值,我会使用一个输出参数。
示例存储过程,带有一个OUTPUT参数:
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参数调用存储过程:
DECLARE @OutputParameter datetime ,@ReturnValue int EXEC @ReturnValue=YourStoredProcedure 1,null, @OutputParameter OUTPUT PRINT @ReturnValue PRINT CONVERT(char(23),@OutputParameter ,121)
OUTPUT:
0 2010-01-01 00:00:00.000
这将工作,如果你只想返回一个整数:
DECLARE @ResultForPos INT EXEC @ResultForPos = storedprocedureName 'InputParameter' SELECT @ResultForPos
declare @EventId int CREATE TABLE #EventId (EventId int) insert into #EventId exec rptInputEventId set @EventId = (select * from #EventId) drop table #EventId
从文档 (假设您使用SQL-Server):
USE AdventureWorks; GO DECLARE @returnstatus nvarchar(15); SET @returnstatus = NULL; EXEC @returnstatus = dbo.ufnGetSalesOrderStatusText @Status = 2; PRINT @returnstatus; GO
所以是的,它应该这样工作。