Sql IF存在,更新&将新列返回true,否则返回false为false

时间:2013-07-29 23:22:52

标签: sql

我正在尝试验证用户信息,如果userExists列具有有效的组合并且更新lastLogin时间,则将其返回true。否则,只返回false。我的ELSE语句出错了。有没有更好的方法呢?

IF EXISTS(SELECT * FROM [User].Data WHERE username = @username 
               AND password = @password)
    UPDATE [User].Data
    SET    lastLogin = GETDATE()
    WHERE    username = @username

    SELECT 'true' AS userValid

ELSE
    SELECT 'false' AS userValid
END

1 个答案:

答案 0 :(得分:0)

尝试beginend,如下所示:

IF EXISTS(SELECT * FROM [User].Data WHERE username = @username 
               AND password = @password)
BEGIN --BEGIN IF BLOCK
    UPDATE [User].Data
    SET    lastLogin = GETDATE()
    WHERE    username = @username

    SELECT 'true' AS userValid
END --END IF BLOCK
ELSE
    SELECT 'false' AS userValid
END

由于SQL中没有大括号或缩进,您必须使用IFBEGIN将多个语句划分为END的块。