使用select中的数据进行更新

时间:2012-06-19 17:56:12

标签: sql select sql-update

我正在编写一个登录函数,我需要它使用非常少的资源,所以我试图尽可能少地调用数据库。

我有以下选择声明:

SELECT TOP (1) fldID, fldActive, fldAdmin, fldTester, fldBanned, fldLastLogin
FROM   tblUsers
WHERE  fldName=@n AND fldPass=@p

如果fldLastLoginfldActive且fldBanned为false,我需要更新所选用户的true字段。

有没有办法更新并仍然让它返回用户信息

2 个答案:

答案 0 :(得分:0)

尝试使用UPDATE / SET语法作为子查询。 W3Schools有很棒的教程。

答案 1 :(得分:0)

我找到了解决方案

DECLARE @tbl TABLE (fldID int, fldActive bit, fldAdmin bit, fldTester bit, fldBanned bit, fldLastLogin datetime)
INSERT @tbl SELECT TOP (1) fldID, fldActive, fldAdmin, fldTester, fldBanned, fldLastLogin
FROM luka42_data.luka42_luka42.tblUsers
WHERE (fldName = @n) AND (fldPass = @p)
IF (SELECT COUNT(*) FROM @tbl)>0 AND (SELECT fldActive from @tbl)=1 AND (SELECT fldBanned from @tbl)=0
BEGIN
    UPDATE luka42_data.luka42_luka42.tblUsers SET fldLastLogin=@t;
END
SELECT * FROM @tbl

如果某人有更快的解决方案,请分享