Wie bekomme ich den nächsten Autoinkrement-Wert in sql?

8

Ich erstelle eine winform-Anwendung in c # .und benutze die sql-Datenbank.

Ich habe eine Tabelle, employee_master , die Spalten wie Id, name, address und phone no hat. Id ist auto increment und alle anderen Datentypen sind varchar .

Ich verwende diesen Code, um den nächsten automatischen Inkrementwert zu erhalten:

%Vor%

Ich werde auf einer TextBox angezeigt.

Aber wenn die letzte Zeile aus der Tabelle gelöscht wird, bekomme ich immer noch den Wert, der kürzlich in der Textbox gelöscht wurde

Wie soll ich den nächsten Autoinkrementwert erhalten?

    
siddharth 13.07.2012, 10:53
quelle

8 Antworten

16

Um den nächsten Auto-Inkrement-Wert von SQLServer zu erhalten:

Dadurch wird der aktuelle Autoinkrementwert abgerufen.

%Vor%

Nächster Auto-Inkrement-Wert.

%Vor%

------ & gt; Dies funktioniert auch, wenn Sie eine Zeile hinzufügen und dann löschen, da IDENT_CURRENT den letzten Identitätswert zurückgibt, der für eine bestimmte Tabelle in einer Sitzung und einem beliebigen Bereich generiert wurde.

    
patel.milanb 13.07.2012, 11:00
quelle
5

versuche das:

%Vor%     
Mehdi Esmaeili 27.12.2013 16:54
quelle
1

Wenn Sie eine Zeile aus der Tabelle löschen, bleibt die nächste Zahl gleich, da sie in keiner Weise dekrementiert wird.

Wenn Sie also 100 Zeilen haben und Zeile 100 gelöscht haben, hätten Sie 99 Zeilen, aber die nächste Zahl wäre immer noch 101.

    
Gaz Winter 13.07.2012 11:01
quelle
0

Die maximale (ID) wird Ihre maximale Anzahl in der Liste von Mitarbeiter_Master

erhalten

z.B. id = 10, 20, 100 also Max wird dir 100

bringen

Aber wenn Sie den Datensatz löschen, muss es nicht 100

gewesen sein

Du bekommst also immer noch 100 zurück

Ein wichtiger Grund für mich, dies zu sagen, könnte das Problem sein, weil Sie in Ihrer Abfrage nicht die Reihenfolge nach ID verwenden

    
HatSoft 13.07.2012 10:57
quelle
0

Wenn Sie Microsoft SQL Server verwenden. Verwenden Sie diese Anweisung, um den aktuellen Identitätswert der Tabelle abzurufen. Fügen Sie dann Ihren Startwert hinzu, den Sie beim Entwerfen der Tabelle angegeben haben, wenn Sie die nächste ID erhalten möchten.

%Vor%     
Rumit Parakhiya 13.07.2012 11:00
quelle
0
%Vor%     
Jidheesh Rajan 09.10.2013 06:30
quelle
0

Für MS SQL 2005 und höher:

%Vor%     
Martini 18.04.2014 19:32
quelle
0

Nur ein Gedanke, wenn Sie die letzte automatische Nummer haben wollten, die Sie in eine bereits geöffnete Verbindung eingefügt haben, versuchen Sie es mit:

%Vor%

von dieser Verbindung. Das ist der beste Weg, um zu verfolgen, was gerade bei einer bestimmten Verbindung passiert ist, und vermeidet Rennbedingungen mit anderen Verbindungen. Das Erlangen der maximalen Identität ist im Allgemeinen nicht möglich.

    
Beastian 07.06.2016 15:03
quelle