批量复制错误:违反PRIMARY KEY约束

时间:2016-02-04 13:11:33

标签: sql-server azure

我正在尝试使用SQL数据库迁移向导

SQL Database Migration Wizard

将表从本地SQL Express实例上传到Azure数据库。

该表格作为平面文件提供给我,其中有180万条记录。

Azure不允许我上传此表,因为它没有主键索引。所以,我添加了一个名为trevId的新字段,并将其作为主键......

我的表创建脚本如下所示:

CREATE TABLE [dbo].[Written_Premiums](
[Client Account Number] [varchar](8) NULL,
....
[Period] [nvarchar](6) NULL,
[trevId] [bigint] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_Written_Premiums] PRIMARY KEY NONCLUSTERED 
(
[trevId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

但是,由于一个我不明白的原因,它上传了1372000行的表后无法上传并出现以下错误...:

Starting copy...
SQLState = 23000, NativeError = 2627
Error = [Microsoft][SQL Server Native Client 11.0][SQL Server]Violation of PRIMARY KEY constraint 'PK_Written_Premiums'. Cannot insert duplicate key in object 'dbo.Written_Premiums'. The duplicate key value is (1).
SQLState = 01000, NativeError = 3621
Warning = [Microsoft][SQL Server Native Client 11.0][SQL Server]The statement has been terminated.
BCP copy in failed

除了这一个,我还有大约20个表要上传。我手动将索引添加到所有其他表中,并且它们上传时没有错误。

唯一的区别是这个表是我试图上传的表中最大的...

有人可以对可能出现的问题提出任何建议吗?

编辑:忘了提到向导已经创建了一个新的干净的表,所以那里不存在数据......

编辑:当我查看已成功添加的行时,确实有一条trevId = 1的记录...为什么要尝试上传具有相同ID的另一条记录?

0 个答案:

没有答案