Pertanyaan saya adalah
cara menaikkan nilai kolom dengan 1.
Misalnya, kolom ID
memiliki nilai 1,2,3,4, ..
Sekarang ketika saya memperbarui tabel ini maka ID
kolom harus bertambah 1,
Sekarang ID
akan menjadi 2,3,4,5, ..
Pertanyaan saya adalah
cara menaikkan nilai kolom dengan 1.
Misalnya, kolom ID
memiliki nilai 1,2,3,4, ..
Sekarang ketika saya memperbarui tabel ini maka ID
kolom harus bertambah 1,
Sekarang ID
akan menjadi 2,3,4,5, ..
Jawaban:
Untuk menambahkan satu ke setiap nilai di tabel ...
UPDATE myTable
SET ID = ID + 1
Untuk membuat nilai baru, satu lebih dari nilai tertinggi sebelumnya (biasanya), gunakan kolom dengan IDENTITAS
ISNULL
pernyataan seperti ini: UPDATE myTable SET ID = ISNULL(ID, 0) + 1
(Diambil dari jawaban SO ini )
SET [Lic] = [Lic] + @dif
. Catatan variabel @dif bisa positif, 0, atau negatif
Coba ini:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
Anda dapat menggunakan IDENTITY
yang akan melakukan ini untuk Anda.
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
Saat Anda memasukkan catatan pertama Anda, Anda akan mendapatkan Id
1.
Di Oracle, kodenya sedikit lebih rumit.
Anda harus membuat bidang kenaikan otomatis dengan objek urutan (objek ini menghasilkan urutan angka).
Gunakan sintaks CREATE SEQUENCE berikut:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Kode di atas membuat objek urutan yang disebut seq_person, yang dimulai dengan 1 dan akan bertambah 1. Ini juga akan menyimpan hingga 10 nilai untuk kinerja. Opsi cache menentukan berapa banyak nilai urutan yang akan disimpan dalam memori untuk akses lebih cepat.
Untuk memasukkan record baru ke dalam tabel "Persons", kita harus menggunakan fungsi nextval (fungsi ini mengambil nilai berikutnya dari urutan seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
Pernyataan SQL di atas akan memasukkan record baru ke dalam tabel "Persons". Kolom "ID" akan diberi nomor berikutnya dari urutan seq_person. Kolom "FirstName" akan disetel ke "Lars" dan kolom "LastName" akan disetel ke "Monsen".
Anda bisa mencoba yang berikut ini:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)