Sql server 对现有表中多个字段上的主键集所做的更改

Sql server 对现有表中多个字段上的主键集所做的更改,sql-server,sql-server-2008,sql-server-2012,Sql Server,Sql Server 2008,Sql Server 2012,我使用的是sql server 2012企业版 我的桌子结构如下。。我需要删除主键,并需要将主键添加到它自身的第一列 表结构如下所示 CREATE TABLE [dbo].[ActivationInfo]( [cert_id] [int] NOT NULL, [ActivationKey] [varchar](1800) NULL, [Activated_ts] [datetime] NULL, [Activated_by] [int] NOT NULL,

我使用的是sql server 2012企业版

我的桌子结构如下。。我需要删除主键,并需要将主键添加到它自身的第一列

表结构如下所示

 CREATE TABLE [dbo].[ActivationInfo](
    [cert_id] [int] NOT NULL,
    [ActivationKey] [varchar](1800) NULL,
    [Activated_ts] [datetime] NULL,
    [Activated_by] [int] NOT NULL,
    [FLAGGED] [varchar](20) NULL
) ON [PRIMARY]
如何删除已在多个字段上设置的主键?之后,我只需要为cert_id设置主键


请任何人对此提供帮助。

这只需删除主键约束,然后添加一个新约束即可实现

首先,需要使用以下代码标识主键约束的名称:

SELECT CONSTRAINT_NAME
  FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
  WHERE TABLE_NAME = 'ActivationInfo' AND CONSTRAINT_TYPE = 'PRIMARY KEY'
然后您只需放下并更换钥匙:

ALTER TABLE ActivationInfo DROP CONSTRAINT **EXISTING NAME**
ALTER TABLE ActivationInfo ADD CONSTRAINT pk_ActivationInfo PRIMARY KEY (cert_id)

这很简单。复制的,只是颠倒目标想要的

ALTER TABLE ActivationInfo 
DROP CONSTRAINT CompositeKeyNameGoesHere, 

ALTER TABLE ActivationInfo 
ADD CONSTRAINT pk_CertID PRIMARY KEY (cert_id)

要删除,请使用此结构:(如果您知道表名)

要添加主键,请执行以下操作:

ALTER TABLE [dbo].[ActivationInfo] ADD CONSTRAINT PK_ActivationInfo_cert_id PRIMARY KEY(cert_id)
ALTER TABLE [dbo].[ActivationInfo] ADD CONSTRAINT PK_ActivationInfo_cert_id PRIMARY KEY(cert_id)