添加列在现有表的主键(Adding column with primary key in exist

2019-08-04 05:59发布

我想主键添加到现有表名新增的列Product_Details

新列说: Product_Detail_IDintnot null

我想添加主键Product_Detail_ID (请注意:有分配给该表中没有其他主键或外键)

我与这个查询尝试,但得到的错误。

ALTER TABLE Product_Details
ADD CONSTRAINT pk_Product_Detils_Product_Detail_ID PRIMARY KEY(Product_Detail_ID)
GO

错误:

CREATE UNIQUE INDEX因为重复键被发现的对象名称终止声明'dbo.Product\_Details'和索引名'pk\_Product\_Detils' 重复的密钥值是(0)。

我失去了一些东西在这里? 我使用SQL Server 2008 R2。 我将不胜感激任何帮助。

Answer 1:

如果你想SQL Server为新列会自动提供值,使它的身份。

ALTER TABLE Product_Details DROP COLUMN Product_Detail_ID
GO
ALTER TABLE Product_Details ADD Product_Detail_ID int identity(1,1) not null
GO
ALTER TABLE Product_Details
add CONSTRAINT pk_Product_Detils_Product_Detail_ID primary key(Product_Detail_ID)
GO


Answer 2:

因为你不fullfill约束现有数据你所得到的错误。

有2种方法来解决这个问题:

  • 添加约束之前,清理现有数据
  • 与“WITH NOCHECK”选项添加的约束,这将停止SQL Server检查现有数据,只有新的数据将被检查


Answer 3:

在MySQL中,我能够实现与下面的查询

ALTER TABLE table_name ADD new_column int NOT NULL AUTO_INCREMENT primary key



Answer 4:

ALTER TABLE Jaya 
  ADD CONSTRAINT no primary key(No);

这里Jaya是表名,

no是列名,

ADD CONSTRAINT是我们让主键关键字



Answer 5:

ķ。 朋友命令:SQL>改变表的表名添加主键(COL_NAME);

例如:改变表pk_Product_Detils添加主键(Product_Detail_ID);



文章来源: Adding column with primary key in existing table