带有output子句的Select语句不起作用

时间:2014-01-16 16:41:15

标签: sql

未获得@lastupdate的值。如果删除SELECT语句,则在代码隐藏

中获取@lastupdate的值
@action int,
@autoid int = NULL,
@datecheck date = NULL,
@lastupdate datetime = '' OUTPUT

AS
BEGIN
SET NOCOUNT ON;

IF @action = 1
    BEGIN
        SET @lastupdate = (SELECT reddate FROM lastupdate)
        SELECT * FROM view_mychart WHERE processdate=@datecheck 
    END
END

3 个答案:

答案 0 :(得分:1)

在结果集之后返回任何输出参数。在尝试访问输出参数之前,请确保已处理/读取结果。

答案 1 :(得分:0)

从我所看到的,你应该使用以下内容:

SELECT @lastupdate = reddate FROM lastupdate

虽然我个人可能会限制查询,因为这可能需要一段时间,具体取决于数据库大小等。

答案 2 :(得分:0)

如果需要两者 - 只需编写两个语句

IF @action = 1
    BEGIN
        -- are you 1000% sure this only ever returns ONE ROW???
        -- otherwise, you might need to change it somehow....
        SELECT @lastupdate = reddate FROM lastupdate

        SELECT * FROM view_mychart WHERE processdate = @datecheck 
    END
END

这应该可以正常工作!