Add primary key to existing table
I have an existing table called Persion
. In this table I have 5 columns:
- persionId
- Pname
- PMid
- Pdescription
- Pamt
When I created this table, I set PersionId
and Pname
as the primary key.
I now want to include one more column in the primary key - PMID. How can I write an ALTER
statement to do this? (I already have 1000 records in the table)
drop constraint and recreate it
alter table Persion drop CONSTRAINT <constraint_name>
alter table Persion add primary key (persionId,Pname,PMID)
edit:
you can find the constraint name by using the query below:
select OBJECT_NAME(OBJECT_ID) AS NameofConstraint
FROM sys.objects
where OBJECT_NAME(parent_object_id)='Persion'
and type_desc LIKE '%CONSTRAINT'
I think something like this should work
-- drop current primary key constraint
ALTER TABLE dbo.persion
DROP CONSTRAINT PK_persionId;
GO
-- add new auto incremented field
ALTER TABLE dbo.persion
ADD pmid BIGINT IDENTITY;
GO
-- create new primary key constraint
ALTER TABLE dbo.persion
ADD CONSTRAINT PK_persionId PRIMARY KEY NONCLUSTERED (pmid, persionId);
GO