我正在尝试在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)
答案 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