我有一张桌子:Sales_Table带有列:
ProductKey Int not null,
UnitPrice decimal 18,2,
SalesAmount decimal 18,2
我正在尝试使用alter table将主键添加到ProductKey列
ALTER TABLE SALES_TABLE
ADD PRIMARY KEY (ProductKey)
运行代码后,出现以下错误:
消息1505,级别16,状态1,第9行CREATE UNIQUE INDEX语句 由于找到对象名称的重复键而终止 'dbo.Sales_Table'和索引名称'PK__Sales_Ta__A15E99B36F3FE24F'。 重复的键值为(604)。
我该怎么做才能克服这个问题?预先感谢。
答案 0 :(得分:0)
尝试一下
IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='Product')
BEGIN
CREATE TABLE [dbo].[Product](
[ProductKey] [int] NOT NULL,
[UnitPrice] [decimal](18, 2) NULL,
[SalesAmount] [decimal](18, 2) NULL,
) ON [PRIMARY]
END
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE name='Pk_Product')
BEGIN
ALTER TABLE [dbo].[Product] ADD CONSTRAINT [Pk_Product] PRIMARY KEY CLUSTERED
(
[ProductKey] 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]
END