Le mie domande sono
come incrementare il valore di una colonna di 1.
Ad esempio, supponiamo che una colonna ID
abbia valori 1,2,3,4, ..
Ora, quando aggiorno questa tabella, la ID
colonna dovrebbe aumentare di 1,
Ora ID
diventerà 2,3,4,5, ..
Le mie domande sono
come incrementare il valore di una colonna di 1.
Ad esempio, supponiamo che una colonna ID
abbia valori 1,2,3,4, ..
Ora, quando aggiorno questa tabella, la ID
colonna dovrebbe aumentare di 1,
Ora ID
diventerà 2,3,4,5, ..
Risposte:
Per aggiungere uno a ogni valore nella tabella ...
UPDATE myTable
SET ID = ID + 1
Per creare un nuovo valore, uno in più del precedente più alto (di solito), usa una colonna con IDENTITÀ
ISNULL
affermazione come questa: UPDATE myTable SET ID = ISNULL(ID, 0) + 1
(Tratto da questa risposta SO )
SET [Lic] = [Lic] + @dif
. Nota la variabile @dif può essere positiva, 0 o negativa
Prova questo:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
Puoi usare IDENTITY
che lo farà per te.
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
Quando inserisci il tuo primo record, otterrai Id
1.
In Oracle il codice è un po 'più complicato.
Dovrai creare un campo di incremento automatico con l'oggetto sequenza (questo oggetto genera una sequenza numerica).
Utilizza la seguente sintassi CREATE SEQUENCE:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Il codice precedente crea un oggetto sequenza chiamato seq_person, che inizia con 1 e aumenterà di 1. Inoltre memorizzerà fino a 10 valori per le prestazioni. L'opzione cache specifica quanti valori di sequenza verranno archiviati in memoria per un accesso più rapido.
Per inserire un nuovo record nella tabella "Persone", dovremo utilizzare la funzione nextval (questa funzione recupera il valore successivo dalla sequenza seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
L'istruzione SQL precedente inserirà un nuovo record nella tabella "Persone". Alla colonna "ID" verrà assegnato il numero successivo dalla sequenza seq_person. La colonna "FirstName" sarebbe impostata su "Lars" e la colonna "LastName" sarebbe impostata su "Monsen".
Potresti provare quanto segue:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)