Sql server 对现有表中多个字段上的主键集所做的更改
我使用的是sql server 2012企业版 我的桌子结构如下。。我需要删除主键,并需要将主键添加到它自身的第一列 表结构如下所示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,
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)