我无法编写一个存储过程,该过程首先根据用户提供的密码(也是散列)检查散列密码。如果密码匹配,该过程会将密码更改为用户提供的新密码,以便在存储之前对其进行哈希处理。我试了一下,发现下面的代码似乎完全超出了正确的语法。任何可以提供的帮助将不胜感激。有问题的代码如下:
Create Proc UserChangePassword
@pGuid varchar(50),
@pOldPassword varchar(100),
@pHashedPassword varchar (100),
@pNewPassword varchar(10)
AS
set @pHashedPassword = HASHBYTES('md5', @pOldPassword)
set @pOldPassword as select st01Password from st01UserData where @pGuid = st01GUID
If ( @pOldPassword = @pHashedPassword)
Begin
Update st01UserData (
set st01Password = HASHBYTES('md5', @pNewPassword))
where st01GUID = @pGuid
Return 'SUCCESS'
Else
RETURN 'FAILED'
GO