无法向表添加主键

问题描述 投票:0回答:2

我正在尝试使用此脚本向表添加主键:

USE [C01]
GO

ALTER TABLE [dbo].[CHECKREGISTER] 
    ADD PRIMARY KEY CLUSTERED ([TRANSACTIONID] ASC)
                WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF,
                      SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, 
                      ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

但是当我尝试时,出现以下错误:

消息 1505,第 16 级,状态 1,第 3 行
CREATE UNIQUE INDEX 语句终止,因为发现对象名称“dbo.CHECKREGISTER”和索引名称“PK__CHECKREG__356DA90E668030F6”存在重复键。重复的键值为 (0)。 > 消息 1750,级别 16,状态 0,第 3 行
无法创建约束。请参阅以前的错误。该声明已终止。

但是当我查看数据库“树”时,它没有显示任何键或约束。我该怎么办?

sql-server t-sql key alter-table
2个回答
0
投票

您已设置

IGNORE_DUP_KEY = OFF
。该消息告诉您有一个重复的密钥。再次检查该表。您可能错过了主键。如果你真的认为情况并非如此
IGNORE_DUP_KEY = ON


0
投票

如果您要向现有列添加主键,则该列只需保存唯一值。在这种情况下,

TRANSACTIONID
列中有重复的值。

© www.soinside.com 2019 - 2024. All rights reserved.