我创建了一个表,其中有两列组合为主键。
CREATE TABLE [dbo].[Workflow_Name]
(
[Workflow_ID] [int] NOT NULL,
[Unique_Workflow_ID] [int] NOT NULL,
[Workflow_Name] [varchar](255) NULL,
[Row_ID] [int] NULL,
[ReleaseVersion] [varchar](255) NULL,
[Release] [varchar](255) NULL,
CONSTRAINT [PK_WorkFlowName] PRIMARY KEY CLUSTERED
([Workflow_ID] ASC, [Unique_Workflow_ID] ASC )
)
如图所示, [Workflow_ID] ASC,[Unique_Workflow_ID] ASC 组合在一起形成主键。
现在我想从主键约束中删除[Unique_Workflow_ID]并仅将[Workflow_ID]维护为主键。
怎么做?
答案 0 :(得分:1)
您可以删除主键约束,然后仅使用Workflow_ID创建一个新约束。但要确保它只有唯一的值。
答案 1 :(得分:1)
您可以在选择表所在的数据库后,通过在SSMS查询窗口中执行以下语句来执行此操作。
ALTER TABLE [dbo].[Workflow_Name]
DROP CONSTRAINT [PK_WorkFlowName]
ALTER TABLE [dbo].[Workflow_Name]
ADD CONSTRAINT [PK_WorkFlowName] PRIMARY KEY ([Workflow_ID] ASC)
请注意,为了使其正常工作,如果[Workflow_Name]
中有现有行,则此新单列主键(即[Workflow_ID]
中的数据)必须每行唯一。否则,ALTER
语句将(正确地)抛出数据在该列中不唯一的错误。