MSSQL:更新行返回重复键错误


MSSQL: Update row returns duplicate key error

我正在使用CodeIgniter和MSSQL构建一个Web应用程序,但是当我尝试更新数据库中的行时,我收到"重复键"错误:

Error Number: 23000
Cannot insert duplicate key row in object 'dbo.users' with unique index 'IX_users'. 
The duplicate key value is (user@mail.com).
UPDATE users SET email='user@mail.com', name='User', surname='Surname', password='1234'

当我运行更新时,无论电子邮件字段是否保持不变,都会发生这种情况。我不是 MSSQL 的专家,但我没有看到更新行并保持唯一字段相同的问题。

我很乐意提供您可能需要的任何其他信息。

问题很简单,您正在更新所有用户以获取相同的电子邮件

UPDATE users 
SET email='user@mail.com', name='User', surname='Surname', password='1234'

缺少 WHERE 子句。例:

WHERE email='user@mail.com'