我正试图在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)
您正在尝试插入一条新记录,要更新现有记录,您需要使用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关键字作为列名,如果您确实有这样的列,请确保在查询内部使用时在它们周围使用方括号[]
。
语法不正确。如果你想更新表格,试试这个:
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