Benutzer mit den meisten Antworten
Ändern des Identity Wertes einer Spalte via SQL

Frage
-
Guten Morgen,
ich habe eine Tabelle, die eine Identity Spalte enthält.
In diese Tabelle werden viele Daten geschrieben, die aber nach einiger Zeit komplett geloscht werden.
Das wiederholt sich jeden Tag.
Damit laufe ich irgendwann aus dem INT Datenbereich der Identity Spalte.
Gibt es eine Möglichkeit, den Identity Wert zur Laufzeit per Sql zu setzen?
Dann könnte ich den Identity Wert vor jedem neuen Lauf auf 0 setzen
Im Einsatz ist bei uns ein SQl Server V10.0.2531 Enterprise.
Vielen Dank.
Gregor
Antworten
-
Hallo Gregor,
mit der DBCC CHECKIDENTITY ('tabellenname', RESEED) Anweisung kannst Du den nächsten Werte auf den maximal vorhandenen Wert + 1 zurück setzen lassen; oder auch den gewünschten Wert vorgeben.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort vorgeschlagen Stefan HoffmannModerator Montag, 31. Oktober 2011 11:45
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 8. November 2011 11:53
Alle Antworten
-
Hallo Gregor,
mit der DBCC CHECKIDENTITY ('tabellenname', RESEED) Anweisung kannst Du den nächsten Werte auf den maximal vorhandenen Wert + 1 zurück setzen lassen; oder auch den gewünschten Wert vorgeben.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort vorgeschlagen Stefan HoffmannModerator Montag, 31. Oktober 2011 11:45
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 8. November 2011 11:53
-
Hallo Gregor,
bist Du sicher dass Du die Identity Spalte wirklich benötigst?
Ein Ansatz wäre die Spalte auf BIGINT zu ändern, das sollte einige Zeit reichen.
Das Zurücksetzen erreichst Du mit folgender Anweisung:
DBCC CHECKIDENT (DeineTabelle, RESEED, 0)
Gruß Thomas