我正在尝试使用简单IF-ELSE-Statement
编写一个过程。但每次只是跳进ELSE块。但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
最好的问候
答案 0 :(得分:0)
好的,发现了我的错误。 我声明我的参数错了。 我写道:
@Username nvarchar
@Password nvarchar
而不是:
@Username nvarchar(32),
@Password nvarchar(32)