2016-07-22 11 views
0

Ich habe zwei Indizes auf meinem Tisch:SQL Azure Switching Clusterd und Non Clustered Index

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 

und

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 

Ich brauche nur einen gruppierten Primärschlüssel Index statt über zwei haben. Das Löschen und erneute Erstellen der Tabellen ist keine Option.

Gibt es so etwas wie

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

so, dass ich dann den nicht gruppierten Index löschen kann?

Antwort

0

Löschen Sie beide Indizes und erstellen Sie eine neue, anstatt die Tabelle zu löschen.

Schritte beteiligt ..

Tropfen Index

drop index IXAddrbookCrtDtm auf [dbo]. [Adreßbuch]

Tropfen Einschränkung

alter table [dbo] . [Addrbook] Drop Constraint PKAddrbook_New

Erstellen neuer Primärschlüssel

alter table [dbo]. [Adreßbuch] Primärschlüssel hinzufügen (AbkOrgGrpID, AddrbookID)

+0

Will Azure SQL DB erlauben Sie mir den Clustered-Index zu löschen, ohne neu zu erstellen Der Tisch? – user2561997

+0

Sie müssen nicht Tabelle – TheGameiswar

+0

mit V12 fallen, und wenn Sie darauf sind, ist es nicht zwingend erforderlich: http: //sqlmag.com/sql-server/indexes-azure-sql-database-v12 – TheGameiswar

Verwandte Themen