2016-07-22 53 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