0
簡単な手続きを書こうとしています。IF-ELSE-Statement
しかし、たびにELSEブロックにジャンプします。しかし、IFは真です。MSSQLプロシージャIF文が機能しない
私は三つの方法
SET @Count = (SELECT COUNT(*) FROM UserTable WHERE Username = @Username AND Password = @Password)
IF @Count > 0
BEGIN
SET @SessionID = CONVERT(varchar(32), NEWID())
PRINT 'IF Clause'
SET @Response = @SessionID
END
ELSE
BEGIN
PRINT 'ELSE Clause'
SET @Response = 'error 401'
END
と
IF (SELECT COUNT(*) FROM UserTable WHERE Username = @Username AND Password = @Password) > 1
と
IF EXISTS (SELECT * FROM UserTable WHERE Username = @Username AND Password = @Password)
を試してみました私は、私はあまりにも、SELECT-文をご確認が、手順をテストするためのスクリプトを書きました。彼らは正しいです。
編集: プロシージャを間違って呼び出すことはできますか?
EXEC dbo.UPLogin @Username = 'test', @Password = 'test1234', @Response = @Response Output
SELECT @Response
よろしく
を使用すると、プロシージャの定義を投稿していなかったので、それは、あなたが間違った手続きを呼び出している場合と言うのは難しいです。あなたは文脈外の部分だけを掲示しました。また、 'SET @ Count'の行の後に' PRINT @ Count'を試しましたか? –
はい、あなたは正しいですが、ありがとうございましたので、私は間違いを発見しました。 :)私は自分のパラメータが間違っていると宣言した。私は書いた: ユーザー名の代わりにnvarcharユーザー名nvarchar(32) – BHuelse
OK。それで、自己回答を投稿して(おそらくあなたが削除したものを編集して、おそらく)他の人に解決策を提供するか、答えが不要になったら質問を削除してください。 –