Meine Fragen sind
wie man den Wert einer Spalte um 1 erhöht.
Angenommen, eine Spalte ID
hat die Werte 1,2,3,4, ..
Wenn ich diese Tabelle aktualisiere, ID
sollte die Spalte um 1 erhöht werden.
Jetzt ID
wird 2,3,4,5, ..
sql-server-2005
Varinder
quelle
quelle
Antworten:
So fügen Sie jedem Wert in der Tabelle einen hinzu ...
Verwenden Sie eine Spalte mit IDENTITY, um einen neuen Wert zu erstellen, der mehr als der vorherige höchste Wert ist (normalerweise)
quelle
ISNULL
Aussage :UPDATE myTable SET ID = ISNULL(ID, 0) + 1
(Aus dieser SO-Antwort entnommen )SET [Lic] = [Lic] + @dif
. Hinweis @dif Variable kann positiv, 0 oder negativ seinWenn Sie für jede automatisch generierte Zeile eine eindeutige Nummer haben möchten, ist dies IDENTITY gemäß Neils Antwort.
Wenn Sie jedes Mal, wenn Sie die Tabelle aktualisieren, die Werte erhöhen möchten (dh es handelt sich nicht um Schlüssel):
quelle
Versuche dies:
quelle
Sie können verwenden,
IDENTITY
was dies für Sie erledigt.Wenn Sie Ihren ersten Datensatz einfügen, erhalten Sie eine
Id
von 1.quelle
In Oracle ist der Code etwas kniffliger.
Sie müssen mit dem Sequenzobjekt ein Feld für die automatische Inkrementierung erstellen (dieses Objekt generiert eine Zahlenfolge).
Verwenden Sie die folgende CREATE SEQUENCE-Syntax:
Der obige Code erstellt ein Sequenzobjekt mit dem Namen seq_person, das mit 1 beginnt und um 1 erhöht wird. Außerdem werden bis zu 10 Werte für die Leistung zwischengespeichert. Die Cache-Option gibt an, wie viele Sequenzwerte für einen schnelleren Zugriff im Speicher gespeichert werden.
Um einen neuen Datensatz in die Tabelle "Personen" einzufügen, müssen wir die Funktion nextval verwenden (diese Funktion ruft den nächsten Wert aus der Sequenz seq_person ab):
Die obige SQL-Anweisung würde einen neuen Datensatz in die Tabelle "Personen" einfügen. Der Spalte "ID" würde die nächste Nummer aus der Sequenz seq_person zugewiesen. Die Spalte "Vorname" würde auf "Lars" und die Spalte "Nachname" auf "Monsen" gesetzt.
quelle
Sie könnten Folgendes versuchen:
quelle