【发布时间】:2018-08-02 14:22:27
【问题描述】:
我有这个程序,但它不起作用..我不知道为什么。任何想法我做错了什么?
CREATE PROCEDURE [dbo].[spCheckLogin]
( @Username varchar(30),
@Password varchar(15))
AS
BEGIN
Declare
@Result int = 0;
IF (@Password=(SELECT password from users where Username=@Username))
set @Result=1
ELSE
set @Result=0
return @Result
END
GO
【问题讨论】:
-
定义:“它不起作用”。它会产生错误吗?没有达到你的预期?导致您的 SQL 服务器意外关闭?治愈世界饥饿?我们看不到你所看到的。另外,我真的希望您不要在数据库中存储未散列(带有盐)的密码。
-
是的。使用存储过程时不要使用
return。但更重要的是,永远不要将密码作为纯文本存储在数据库中。相反,store a salted hash of the password. -
当我从 api 调用此过程时,它说我使用它的变量没有值。事情是我在声明它时分配了值 0 :)
-
听起来问题出在 API 上。
-
使用
set nocount on开始您的程序也是一个好主意
标签: sql-server stored-procedures