MSSQL: Zeilennummer auslesen
-
Hallo,
Ich verwende in meinem Asp.Net-Webseiten-Projekt eine MSSQL-Datenbank, deren Inhalt ich mit einem GridView anzeigen lasse und ändere. Wie kann man die Zeilennummer einer Tabellenzeile herausfinden?
Muss man eine zusätzliche "ID"-Spalte mitführen, oder gibt es da andere Wege?Danke schon im Voraus!
mfg
Mr. X
-
Was meinst Du mit Zeilennummer?
Es gibt in einem RDBMS keine Zeilennumern.
Es ist dem RDBMS überlassen wo es die Daten speichert.
Es kann durchaus sein das der erste Datensatz am Ende der DB-Datei steht und der 2. ganz am Anfang. Auch ist es nicht definiert wie die Daten zurückgegeben werden wenn nicht WHERE verwendet wird.Man sollte immer eine BIGINT AutoInc einführen.
-
Danke für die Antwort. Also muss man selber die Daten durchnummerieren.
Wie sorgt man denn am einfachsten dafür, das durch löschen einzelner Zeilen keine Lücken in der Nummerierung entstehen?
-
in dem man am besten nicht löscht, sondern eine extra spalte deleted einbaut und diese daten dann nicht mehr anzeigt.
ist auch besser, wenn man dem kunden mal erklären muss, was er so eingegeben hat.
-
Wen es ein Autowert ist dann sind lücken normal. Was stört dich daran.
Wie gesagt gibt es in einem RDBMS keine Zeilennummern. Die Zeilennummern macht der Client je nach sortierung.
Du kannst einen Autowert einfügen der immer hochzählt.
-
Wenn ich ihn richtig verstehe, dann will er doch einfach nur ein Select-Resultat durchnumerieren oder nicht?
Das geht auf jeden Fall. Müsste ich aber Zuhause nachschauen oder du musst dir das selber ergooglen.
Ich glaube row_number() ist das passende Stichwort.
-
Danke für das Stichwort!