Sql 无法在对象';dbo.AspNetUsers';具有唯一索引';用户名索引';
无法在具有唯一索引的对象中插入重复的键行 我正在尝试将用户转移到由asp.net identity创建的新数据库。但我得到了这个错误: 无法使用在对象“dbo.AspNetUsers”中插入重复的键行 唯一索引“UserNameIndex” 我的代码是:Sql 无法在对象';dbo.AspNetUsers';具有唯一索引';用户名索引';,sql,database,asp.net-identity,Sql,Database,Asp.net Identity,无法在具有唯一索引的对象中插入重复的键行 我正在尝试将用户转移到由asp.net identity创建的新数据库。但我得到了这个错误: 无法使用在对象“dbo.AspNetUsers”中插入重复的键行 唯一索引“UserNameIndex” 我的代码是: INSERT INTO [dbo].[AspNetUsers] ( [Id], [UserName], [UserNameRus], [UserNameHeb], [UserNameEng], [Email], [EmailConfirmed]
INSERT INTO [dbo].[AspNetUsers]
(
[Id],
[UserName],
[UserNameRus],
[UserNameHeb],
[UserNameEng],
[Email],
[EmailConfirmed],
[PhoneNumberConfirmed],
[TwoFactorEnabled],
[LockoutEnabled],
[AccessFailedCount],
[Lang],
[isSendCommercial]
)
SELECT
NEWID(),
[UserName],
[UserNameRus],
[UserNameHeb],
[UserName],
[Email],
'false',
'false',
'false',
'true',
'0',
[Lang],
[isSendCommercial]
FROM [dbo].[Pj_Users]
有人能向我解释一下,为什么我会出现这个错误,我该如何修复它?谢谢。AspNetUsers背后的代码是
CREATE TABLE [dbo].[AspNetUsers] (
[Id] NVARCHAR (128) NOT NULL,
.
.
.
CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
);
GO
CREATE UNIQUE NONCLUSTERED INDEX [UserNameIndex]
ON [dbo].[AspNetUsers]([UserName] ASC);
在我的旧数据库中,用户有一个唯一的电子邮件,并且可以有非唯一的用户名。我找不到解决此问题的答案,因此我在数据库中将最后两行更改为:
CREATE UNIQUE NONCLUSTERED INDEX [EmailIndex]
ON [dbo].[AspNetUsers]([Email] ASC);
这解决了我的问题。AspNetUsers背后的代码是
CREATE TABLE [dbo].[AspNetUsers] (
[Id] NVARCHAR (128) NOT NULL,
.
.
.
CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
);
GO
CREATE UNIQUE NONCLUSTERED INDEX [UserNameIndex]
ON [dbo].[AspNetUsers]([UserName] ASC);
在我的旧数据库中,用户有一个唯一的电子邮件,并且可以有非唯一的用户名。我找不到解决此问题的答案,因此我在数据库中将最后两行更改为:
CREATE UNIQUE NONCLUSTERED INDEX [EmailIndex]
ON [dbo].[AspNetUsers]([Email] ASC);
这解决了我的问题。您能确认RDBMS吗?我猜是MS SQL Server。查看表“dbo.AspNetUsers”上的唯一索引“UserNameIndex”。您可能会发现它包含“UserName”列,表“dbo.Pj_Users”有两行具有相同的“UserName”。谢谢!那帮了大忙!您能确认RDBMS吗?我猜是MS SQL Server。查看表“dbo.AspNetUsers”上的唯一索引“UserNameIndex”。您可能会发现它包含“UserName”列,表“dbo.Pj_Users”有两行具有相同的“UserName”。谢谢!那帮了大忙!