【问题标题】:Store password to a corresponding email address in a table将密码存储到表中的相应电子邮件地址
【发布时间】:2013-07-30 11:41:50
【问题描述】:

我正在那里进行网站项目,当我尝试使用存储过程保存与电子邮件对应的密码时遇到问题。

我已经尝试过使用类似的存储过程

USE [eventmania]
GO
/****** Object:  StoredProcedure [dbo].[sp_PasswordSet]    Script Date: 07/30/2013     17:11:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
ALTER PROCEDURE [dbo].[sp_PasswordSet] 
    -- Add the parameters for the stored procedure here
    @Password nvarchar(50)='',
    @Email nvarchar(50)=''
    --@id int=default
AS
BEGIN
        if exists(select Email from dbo.Complete_Registeration where Email=@Email)
    begin
    insert into dbo.Complete_Registeration([password]) values(@Password)
    end
END

【问题讨论】:

  • 附注 - 存储密码不是一个好主意。改为存储密码哈希
  • 如何使用密码哈希?

标签: c# .net sql-server-2008 stored-procedures


【解决方案1】:

你想要UPDATE 而不是INSERT 例如

UPDATE dbo.Complete_Registration
SET password = @Password
WHERE email = @Email

另外,我希望您不要存储纯文本密码...

【讨论】:

    【解决方案2】:

    该行已存在,您想改用UPDATE 语句。

    试试这个:

    UPDATE dbo.Complete_Registeration SET [password] = @Password WHERE Email = @Email
    

    【讨论】:

    • EXISTS 检查在这里是不必要的开销。
    猜你喜欢
    • 2020-12-25
    • 2019-04-28
    • 2015-10-01
    • 2011-04-16
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    相关资源
    最近更新 更多