MSSQL过程IF语句不起作用

时间:2016-04-02 18:42:25

标签: sql-server-2008 tsql

我正在尝试使用简单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

最好的问候

1 个答案:

答案 0 :(得分:0)

好的,发现了我的错误。 我声明我的参数错了。 我写道:

@Username nvarchar
@Password nvarchar

而不是:

@Username nvarchar(32),
@Password nvarchar(32)