2013-07-29 43 views
0

我試圖驗證用戶信息,返回userExists列真,如果他們有一個有效的組合和更新lastLogin時間。否則,只需返回false。我在我的ELSE聲明中遇到錯誤。有沒有更好的方法來做到這一點?的Sql如果不存在,更新和返回新列爲真,否則返回列假

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 
+0

很抱歉的格式...第一篇文章。 >< –

+0

「收到錯誤」?什麼是錯誤?你用什麼SQL語言;不是所有的支持'IF'。 –

+0

是在'else'陳述或在'end'語句錯誤?你沒有'begin',所以懸掛的'end'看起來很懷疑。 –

回答

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沒有括號或缺口,你必須劃分的IF塊用BEGINEND多個語句。

+0

謝謝!我知道這很簡單! :d –

相關問題