我从另一个存储过程调用存储过程。该存储过程总是返回一个整数值,所以我在一个整数变量中接受该值。
EXEC @IsBusinessDay = LiteIsWorkingDay @ExecutionStart
但即使存储过程返回@IsBusinessDay
的1值为0.
代码块
SELECT @ExecutionStart = CONVERT(VARCHAR, GETDATE(), 107)
EXEC @IsBusinessDay = LiteIsWorkingDay @ExecutionStart
IF(@IsBusinessDay = 0)
BEGIN
IF(CONVERT(VARCHAR,@InterMediateStartDate,108) > CONVERT(VARCHAR,GETDATE(),108))
BEGIN
INSERT INTO TbJobQueue (JobId, ScheduleId, DueDate, Status, ExpiryDate,
ProcessingDate, InputUser, InputTime,
LastModifiedBy, LastModifiedTime)
VALUES (@JobId, @ScheduleId, @InterMediateStartDate, 'NQUE', NULL,
NULL, 'Scheduler', GETDATE(), NULL, NULL)
END
END
请帮助。
由于
答案 0 :(得分:1)
如果你想在变量中存储过程的值,你必须做这样的事情:
在LiteIsWorkingDay存储过程中声明输出参数
创建程序LiteIsWorkingDay @ExecutionStart varchar(20),@ IsBusinessDay int output
在LiteIsWorkingDay存储过程中,您必须为@IsBusinessDay输出参数选择一个值。
在调用LiteIsWorkingDay的存储过程中,您需要执行以下操作以获取其值:
声明@ExecutionStart varchar(20) 选择@ExecutionStart = convert(varchar,getdate(),107)
声明@IsBusinessDay int 执行LiteIsWorkingDay,@ IsBusinessDay输出
就是这样。现在变量@IsBusinessDay将具有您想要的值:)