1

私はログイン関数を書いていますが、リソースをほとんど使用しないようにする必要があるため、データベースへの呼び出しをできるだけ少なくしようとしています。

次の選択ステートメントがあります。

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

fldLastLogin選択したユーザーのフィールドを更新する必要fldActivetrueあり、fldBanned が false の場合。

この更新を行い、ユーザー情報を返す方法はありますか?

4

2 に答える 2

0

UPDATE / SET構文をサブクエリとして 使用してみてください。W3Schoolsには優れたチュートリアルがあります。

于 2012-06-19T17:59:55.913 に答える
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

誰かがより速い解決策を持っている場合は、それを共有してください

于 2012-06-19T19:51:20.280 に答える