【问题标题】:SQl Azure Switching Clusterd and Non Clustered IndexSQL Azure 切换聚集和非聚集索引
【发布时间】:2016-07-22 08:30:06
【问题描述】:

我的桌子上有两个索引:

CREATE CLUSTERED INDEX [IXAddrbookCrtDtm] ON [dbo].[Addrbook]
(
     [AbkOrgGrpID] ASC,
     [AddrbookID] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
      SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF,
      ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
GO

ALTER TABLE [dbo].[Addrbook]
    ADD CONSTRAINT [PKAddrbook_New]
      PRIMARY KEY NONCLUSTERED 
      (
       [AbkOrgGrpID] ASC,
       [AddrbookID] ASC
      )
      WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
            SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, 
            ONLINE = OFF, ALLOW_ROW_LOCKS = ON,
           ALLOW_PAGE_LOCKS = ON)
GO

我只需要一个聚集主键索引而不是以上两个。删除并重新创建表不是一种选择。

有没有类似的

CREATE CLUSTERED INDEX IXAddrbookCrtDtm ON
    Addrbook(AbkOrgGrpID,AddrbookID)
    PRIMARY KEY  WITH (DROP_EXISTING = ON);

这样我就可以删除非聚集索引了吗?

【问题讨论】:

    标签: sql azure azure-sql-database database-indexes


    【解决方案1】:

    删除两个索引并创建新索引,而不是删除表。

    涉及的步骤..

    删除索引

    在 [dbo].[Addrbook] 上删除索引 IXAddrbookCrtDtm

    删除约束

    更改表 [dbo].[Addrbook] 删除约束 PKAddrbook_New

    创建新的主键

    alter table [dbo].[Addrbook] 添加主键 (AbkOrgGrpID,AddrbookID)

    【讨论】:

    猜你喜欢
    • 2013-03-22
    • 2013-08-07
    • 2014-04-27
    • 2016-01-05
    • 2021-01-14
    • 2011-04-05
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多