我想主键添加到现有表名新增的列Product_Details
。
新列说: Product_Detail_ID
( int
和not 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。 我将不胜感激任何帮助。
如果你想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
因为你不fullfill约束现有数据你所得到的错误。
有2种方法来解决这个问题:
- 添加约束之前,清理现有数据
- 与“WITH NOCHECK”选项添加的约束,这将停止SQL Server检查现有数据,只有新的数据将被检查
在MySQL中,我能够实现与下面的查询
ALTER TABLE table_name ADD new_column int NOT NULL AUTO_INCREMENT primary key
ALTER TABLE Jaya
ADD CONSTRAINT no primary key(No);
这里Jaya
是表名,
no
是列名,
ADD CONSTRAINT
是我们让主键关键字
ķ。 朋友命令:SQL>改变表的表名添加主键(COL_NAME);
例如:改变表pk_Product_Detils添加主键(Product_Detail_ID);