当前位置: 首页 > 面试题库 >

如何将主键更改为非集群键?

寇桐
2023-03-14
问题内容

兼职勉强的DBA在这里。我想将现有的主键索引从群集更改为非群集。语法在逃避我。

这就是现在的脚本编写方式。

ALTER TABLE [dbo].[Config] WITH NOCHECK ADD 
    CONSTRAINT [PK_Config] PRIMARY KEY  CLUSTERED 
    (
        [ConfigID]
    )  ON [PRIMARY]

我在在线文档中没有看到ALTER CONSTRAINT语句。


问题答案:

删除聚集索引,然后将主键重新创建为非聚集键:

ALTER TABLE dbo.Config DROP CONSTRAINT PK_Config
go
ALTER TABLE dbo.Config ADD CONSTRAINT PK_Config 
    PRIMARY KEY NONCLUSTERED (ConfigID)


 类似资料:
  • 问题内容: 我试图将我的SQL数据库中表的主键从现有键更改为复合键,其中不包括现有列。由于出现以下错误消息,因此以下代码无法正常工作: 删除主键: PRIMARY附近的语法不正确。预期为COLUMN,CONSTRAINT,ID或QUOTED_ID 添加主键: PRIMARY附近的语法不正确。 期望ID T-SQL代码: 编辑 我可以通过使用以下两个查询语句来完成此操作 我没有要求SQL“ DROP

  • 在这里,是主列键中的第三列。我想要做到这一点的唯一方法是将主复合键更改为。我找不到任何文档告诉我如何做到这一点。有可能吗? 或者,我是否错过了解决这个问题的“正确”方法/我是否曲解了这个问题?

  • 问题内容: 我在表中有一条带有错误主键的记录。我想将其更改为正确的值,但该值在许多其他表中使用。 有没有简单的方法可以在同一时间更新主键和外键? 问题答案: 如果将外键设置为级联更改,则值应自动更改。

  • 我正在开发一个使用Redis的API,它托管在ElastiCache上,有三个节点(一个主节点,两个副本)。周末,由于某种原因,主节点被切换到节点002(从001),这导致我的应用程序在尝试向Redis发送消息时出现只读错误。 有什么理由不手动操作就可以做到这一点?

  • 问题内容: 请清除我对此的疑问,在SQL Server(2000及更高版本)中,主键是自动对群集索引的吗?还是我们可以选择在主键上使用非群集索引? 问题答案: 不,它可以是非集群的。但是,如果您没有明确将其定义为非聚集索引,并且表上没有聚集索引,则会将其创建为聚集索引。

  • 我想转换我的PostgreSQL表主键UUID字符变化 当我运行上面显示以下错误的命令时,Beacause外键约束失败。在我的系统中有200张桌子。有没有简单的方法来更改所有表的主键?