我有一个名为Persion的现有表。在这个表格中,我有5列:

persionId Pname PMid Pdescription Pamt

在创建该表时,我将PersionId和Pname设置为主键。

现在我想在主键中再包含一列——PMID。我如何写一个ALTER语句来做到这一点?(我已经在表中有1000条记录)


当前回答

如果添加主键约束

ALTER TABLE <TABLE NAME> ADD CONSTRAINT <CONSTRAINT NAME> PRIMARY KEY <COLUMNNAME>  

例如:

ALTER TABLE DEPT ADD CONSTRAINT PK_DEPT PRIMARY KEY (DEPTNO)

其他回答

删除约束并重新创建它

alter table Persion drop CONSTRAINT <constraint_name>

alter table Persion add primary key (persionId,Pname,PMID)

编辑:

你可以通过下面的查询找到约束名:

select OBJECT_NAME(OBJECT_ID) AS NameofConstraint
FROM sys.objects
where OBJECT_NAME(parent_object_id)='Persion'
and type_desc LIKE '%CONSTRAINT'

alter table(人) 添加ID int主键

这将添加主键和标识种子并填充新列。

如果添加主键约束

ALTER TABLE <TABLE NAME> ADD CONSTRAINT <CONSTRAINT NAME> PRIMARY KEY <COLUMNNAME>  

例如:

ALTER TABLE DEPT ADD CONSTRAINT PK_DEPT PRIMARY KEY (DEPTNO)

试着使用下面的代码:

ALTER TABLE `table name` 
    CHANGE COLUMN `column name` `column name` datatype NOT NULL, 
    ADD PRIMARY KEY (`column name`) ;
ALTER TABLE TABLE_NAME ADD PRIMARY KEY(`persionId`,`Pname`,`PMID`)