Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 无法在对象';dbo.AspNetUsers';具有唯一索引';用户名索引';_Sql_Database_Asp.net Identity - Fatal编程技术网

Sql 无法在对象';dbo.AspNetUsers';具有唯一索引';用户名索引';

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]

无法在具有唯一索引的对象中插入重复的键行

我正在尝试将用户转移到由asp.net identity创建的新数据库。但我得到了这个错误:

无法使用在对象“dbo.AspNetUsers”中插入重复的键行 唯一索引“UserNameIndex”

我的代码是:

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”。谢谢!那帮了大忙!