2010-09-10 2 views
8

Wenn ich versuche, UK mich für 7 Spalten erstellenGesamtgröße eines Index oder Primärschlüssel darf nicht länger als 900 Byte

Gesamtgröße eines Index oder Primärschlüssel überschreiten kann nicht 900 Byte erhalten.

Wie kann ich diesen Fehler beheben?

+5

Ganz einfach: reduziert die Größe von Dein Index. Kein Indexeintrag in SQL Server kann mehr als 900 Byte sein - das ist eine feste, harte Grenze. Kein Weg um ihn herum. Können Sie uns zeigen, wie Sie den eindeutigen Index erstellen möchten? Welche Felder sind an diesem einzigartigen Index beteiligt? –

+1

@marc_s Von [der vorherigen Frage des OP] (http://StackOverflow.com/questions/3686297/t-sql-unique-constraints-over-7-columns-by-sql-management-studio) denke ich nicht es ist die PK. –

+0

@Martin Smith: Danke für das Heads-Up! –

Antwort

8

Nichts besonders befriedigend. Weitere Hinweise dazu, wie eine eindeutige Integritätsbedingung für Spalten über der 900-Byte-Grenze erzwungen werden kann, finden Sie unter this article.

  • CHECKSUM (Mögliche Kollisionen)
  • Trigger (High Overhead und kann unter Snapshot-Isolation gescheitert)
  • HASHBYTES (weniger Chance von Kollisionen, aber immer noch möglich)
1

Abgesehen von den offensichtlichen (Ändern der Größe dieser 7 Spalten), gibt es keine Einstellung oder ähnliches. Sie können dies jedoch erzwingen, indem Sie Trigger verwenden, um sicherzustellen, dass diese sieben Spalten zusammen eindeutig sind.

Verwandte Themen