2016-07-22 19 views
0

我有我的桌子两个指标:SQL Azure的开关Clusterd和非聚集索引

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); 

,这样我可以然后删除非聚集索引?

回答

0

删除两个索引并创建新索引,而不是删除tabel。涉及

步骤..

掉落指数[DBO]

下降指数IXAddrbookCrtDtm。[Addrbook]

掉落约束

ALTER TABLE [DBO] [Addrbook] 下降约束PKAddrbook_New

创建新的主键

ALTER TABLE [DBO]。[Addrbook]添加主键(AbkOrgGrpID,AddrbookID)

+0

威尔Azure的SQL数据库允许我删除聚集索引而无需重新创建桌子? – user2561997

+0

你不需要在V12中删除表 – TheGameiswar

+0

,如果你使用它,它不是必须的:http://sqlmag.com/sql-server/indexes-azure-sql-database-v12 – TheGameiswar