Md.*_*mud 1 sql database stored-procedures sql-server-2008-r2
我写了以下存储过程:
ALTER PROCEDURE [dbo].[sp_Accounts_ValidateLogin]
@EmailAddress varchar(255),
@Password varchar(20)
AS
DECLARE @UserID int
SELECT @UserID = UserID
FROM Accounts_Users
WHERE EmailAddress = @EmailAddress and Password = @Password
IF @UserID != NULL
RETURN @UserID
ELSE
RETURN -1
Run Code Online (Sandbox Code Playgroud)
执行此过程时,显示,
No rows affected.
(0 row(s) returned)
@RETURN_VALUE = -1
Run Code Online (Sandbox Code Playgroud)
但每当我重写SELECT声明时,
SELECT UserID
FROM Accounts_Users
WHERE EmailAddress = @EmailAddress and Password = @Password
Run Code Online (Sandbox Code Playgroud)
结果是:
UserID
---------------------------------------------------------------------------------------
3
No rows affected.
(1 row(s) returned)
@RETURN_VALUE = -1
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么变量@UserID是没有得到设置里面第一个选择语句?
!= NULL将无法正常工作.
做了:
IF @UserID IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
下面的SO问题有一些关于原因的信息,所以我不打算重新发布它(它基本上是因为NULL不是实际值):
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |