SQL Server-erstellen von Tabellen mit clustered-index ohne primary key
Ist es möglich, erstellen Sie einen gruppierten index aus einer create table-Anweisung in SQL Server 2008, nicht einen primary key?
Der Zweck dieser ist es, der für eine Tabelle in SQL Azure, also ist es keine option für mich zunächst erstellen Sie die Tabelle, und erstellen Sie den gruppierten index auf die Tabelle.
Edit: Anscheinend war es FluentMigrator dafür sorgte, dass meine Probleme, das ist die version-Tabelle nicht über einen gruppierten index, so war es erroring, die versuchen, um die Versionierung der Tabelle nicht mein Tisch.
InformationsquelleAutor der Frage Chris Marisic | 2011-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist möglich, erstellen Sie einen gruppierten index, der nicht der Primärschlüssel. Verwenden Sie einfach ein
CREATE CLUSTERED INDEX
- Anweisung.Vor version Azure SQL Database v12, mussten Sie einen gruppierten index verfügen, bevor Sie Sie einlegen könnte, die alle Daten in eine Tabelle. Als der Azure SQL Database v12Haufen (Tabellen ohne gruppierten index) werden nun unterstützt.
Wenn Ihre Datenbank erstellt wurde, die vor Juni 2016, hier sind die Anleitung für das Upgrade auf version 12.
InformationsquelleAutor der Antwort Rob Boek
Hinweis: die Spezifikation von nicht gruppierten sich auf den Primärschlüssel
Diese wird immer noch funktionieren.
InformationsquelleAutor der Antwort Buildstarted
Den code unten ist kompatibel mit Azure. Es wird ein primärer Schlüssel nicht-gruppierten und einen gruppierten index in einer create table-Anweisung. Diese syntax erlaubt auch die Angabe von mehr als einer Spalte im Schlüssel.
Um sich zu ändern, ein-Tische gruppierten index, der clusteredd index muss gelöscht werden, die konvertiert die Tabelle in eine heap-und dann den neuen gruppierten index angewendet wird. Weil Azure nicht unterstützt heaps (Tabellen ohne gruppierten Indizes) ist es nicht möglich, ändern Sie den gruppierten index, der ohne Satzverlust die Tabelle und neu zu erstellen. In Azure können Sie nicht geben Sie einen gruppierten index in einem anderen Ort, andere als die Tabelle create-Anweisung.
InformationsquelleAutor der Antwort David Sopko