4 Stimmen

SQL Server und Lücken in einer Identitätsspalte

Mir ist gerade aufgefallen, dass SQL Server 2008 beim Einfügen neuer Zeilen in einer Tabelle mit einer Identitätsspalte automatisch die Reihenfolge auffüllt, wenn es Unterbrechungen gibt. Ich meine, wenn ich in meiner Identitätsspalte 1,2,5,6 habe und ich zwei weitere Zeilen in die Tabelle einfüge, setzt das System automatisch 3 ,7 in der Identitätsspalte.

Wissen Sie, wie Sie dieses Verhalten kontrollieren können?

DANKE

8voto

marc_s Punkte 701497

Das ist das definierte und dokumentierte Verhalten von SQL Server, und es gibt wirklich nicht viel, was Sie daran ändern können. Was möchten Sie daran ändern?

IDENTITY-Spalten garantieren eindeutige, immer größer werdende IDs (solange man nicht mit ihnen herumspielt) - sie garantieren nichts anderes.

SQL Server wird no sich die Mühe machen, "Lücken" in Ihrer Sequenz ausfindig zu machen und sie zu füllen. Ich glaube nicht, dass das eine gute Idee wäre - was wäre, wenn Sie einen Datensatz mit ID=3 hätten und ihn dann löschen würden? Wollen Sie wirklich, dass ein nächster Datensatz plötzlich diese ID "recycelt"? Meiner Meinung nach keine gute Idee.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X