从sql server中的用户名更新密码

时间:2014-04-10 16:12:42

标签: sql sql-server passwords

我正在尝试在SQL Server 2012中创建一个存储过程,它将更新与新密码一起提供的用户名的密码。我收到错误“关键字'WHERE'附近的语法不正确”。任何想法如何解决这一问题?谢谢!

CREATE PROCEDURE [dbo].[ChangePassword] (@User_ID varchar(30), @Password varchar(20)) AS
INSERT INTO [User](Password)
VALUES (@Password)
WHERE User_ID = (@User_ID)

2 个答案:

答案 0 :(得分:0)

您正在尝试插入新记录,要更新现有记录,您需要使用UPDATE命令,请参阅下文。

CREATE PROCEDURE [dbo].[ChangePassword] 
@User_ID varchar(30), 
@Password varchar(20) 
AS
BEGIN
  SET NOCOUNT ON;

    UPDATE [User]
    SET [Password]  = @Password
    WHERE [USER_ID] = @User_ID
END

还要避免使用sql-server关键字作为列名,如果你确实有这样的列,请确保在查询中使用时使用方括号[]

答案 1 :(得分:0)

语法不正确。 如果您想更新表格,请尝试:

CREATE PROCEDURE [dbo].[ChangePassword] 
@User_ID varchar(30), 
@Password varchar(20)
AS
UPDATE  [User]
SET Password = @Password
WHERE   User_ID = (@User_ID)

如果您想插入新用户,请尝试以下操作:

INSERT INTO [User] (User_ID, Password)
SELECT @User_ID, @Password