DBCC CHECKIDENT ('Tabellenname', RESEED, 20000) funktioniert nicht


7

Wenn ich das Skript ausführe

DBCC CHECKIDENT ('table name', RESEED, 20000)

Die Ausgabe der Nachricht ist

Identitätsinformationen prüfen: aktueller Identitätswert '200000', aktueller
Spaltenwert '200000'. DBCC-Ausführung abgeschlossen. Wenn DBCC Fehlermeldungen gedruckt hat
, wenden Sie sich an Ihren Systemadministrator.

Wenn ich den Identitätswert durch Ausführen abfrage

SELECT IDENT_CURRENT('table_name')

Es wird wie erwartet als 200000 angezeigt. Wenn der Entwickler jedoch Datensätze in die Tabelle einfügt, wird der neue neu gesetzte Wert nicht verwendet.

Gibt es etwas Offensichtliches, das mir fehlt?

Antworten:


5

Nach mehreren Gesprächen mit den Entwicklern dieser Anwendung unter Verwendung der Tabelle stellte sich heraus, dass es eine 'versteckte' gespeicherte Prozedur gab, die den Maximalwert der ID-Spalte in der Tabelle abfing und eine beliebige Zahl hinzufügte und dann eine resultierende IDENTITY_INSERT-Anweisung ausgab im neu gesetzten Wert.


2

Wenn Sie sich nach einem Kommentar sehnen, aber ein paar Seiten im MSDN-Eintrag nachsehen, sehen Sie Folgendes:

Geben Sie hier die Bildbeschreibung ein

Es sieht so aus, als wäre die zweite Option in Ihrem Fall unwahrscheinlich, aber ist die erste eine Möglichkeit?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.