SQL Server 2008 - Auto Increment
Hi,
ich hab mal eine Frage zum Auto Increment im SQL Server 2008. Existiert die Möglichkeit eine bestehende Spalte nachträglich mit dieser Funktion zu versehen ohne das die bestehenden Inhalte der Spalte entfernt werden? Ich kenn das beispielsweise von Oracle, das man da ein Auto Increment definieren kann mit beliebigem Startwert und es da auch nicht relevant war was vorher in der Spalte stand oder steht.
Grüße
ich hab mal eine Frage zum Auto Increment im SQL Server 2008. Existiert die Möglichkeit eine bestehende Spalte nachträglich mit dieser Funktion zu versehen ohne das die bestehenden Inhalte der Spalte entfernt werden? Ich kenn das beispielsweise von Oracle, das man da ein Auto Increment definieren kann mit beliebigem Startwert und es da auch nicht relevant war was vorher in der Spalte stand oder steht.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193034
Url: https://administrator.de/contentid/193034
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo ooAlbert,
direkt mit einem "alter table" dürfte das nicht gehen (aber probieren kostet ja nichts). Was allerdingst gehen müßte:
1. zu ändernde Spalte umbenennen
2. neue Spalte anlegen mit dem alten Namen der zu ändernden Spalte und mit identity-Eigenschaft
3. mit "set identity_insert <Tabelle> on" die identity-Eigenschaft vorübergehend ausschalten
4. die Inhalte der alten, umbenannten Spalte in die neue Spalte kopieren
5. alte, umbenannte Spalte löschen
6. identity-Eigenschaft mit "set identity_insert <Tabelle> off" wieder einschalten
7. mit "dbcc checkident" den Identitätswert prüfen bzw. ggf. neu setzen
Gruß, Mad Max
direkt mit einem "alter table" dürfte das nicht gehen (aber probieren kostet ja nichts). Was allerdingst gehen müßte:
1. zu ändernde Spalte umbenennen
2. neue Spalte anlegen mit dem alten Namen der zu ändernden Spalte und mit identity-Eigenschaft
3. mit "set identity_insert <Tabelle> on" die identity-Eigenschaft vorübergehend ausschalten
4. die Inhalte der alten, umbenannten Spalte in die neue Spalte kopieren
5. alte, umbenannte Spalte löschen
6. identity-Eigenschaft mit "set identity_insert <Tabelle> off" wieder einschalten
7. mit "dbcc checkident" den Identitätswert prüfen bzw. ggf. neu setzen
Gruß, Mad Max
Moin,
hört sich an, als wäre die identity-Eigenschaft nicht ausgeschaltet.
Aber warum nicht den einfachsten Weg gehen, im Management Studio zur Tabelle, rechte Maustaste, Entwerfen und dann dort der betreffenden Spalte die identity-Eigenschaft geben. Funktioniert, habe ich eben mal probiert. Und weil Du die Frage überhaupt gestellt hast, bin ich davon ausgegangen, daß der einfachste Weg gar nicht klappt. Klappt aber doch
Gruß, Mad Max
hört sich an, als wäre die identity-Eigenschaft nicht ausgeschaltet.
Aber warum nicht den einfachsten Weg gehen, im Management Studio zur Tabelle, rechte Maustaste, Entwerfen und dann dort der betreffenden Spalte die identity-Eigenschaft geben. Funktioniert, habe ich eben mal probiert. Und weil Du die Frage überhaupt gestellt hast, bin ich davon ausgegangen, daß der einfachste Weg gar nicht klappt. Klappt aber doch
Gruß, Mad Max
Hallo ooAlbert,
ein durchgehender Wert ist nicht nötig, interessanterweise noch nicht mal Eindeutigkeit. Aber was unbedingt sein muß und bei Dir nicht der Fall ist, die Spalte darf keine NULL-Werte enthalten. Wenn Du alle NULL-Werte in der Spalte beseitigst, wird es wahrscheinlich funktionieren.
Gruß, Mad Max
ein durchgehender Wert ist nicht nötig, interessanterweise noch nicht mal Eindeutigkeit. Aber was unbedingt sein muß und bei Dir nicht der Fall ist, die Spalte darf keine NULL-Werte enthalten. Wenn Du alle NULL-Werte in der Spalte beseitigst, wird es wahrscheinlich funktionieren.
Gruß, Mad Max