Sorularım
bir sütunun değeri 1 nasıl artırılır.
Örneğin, bir sütunun ID
1,2,3,4, .. değerlerine sahip olduğunu varsayalım .
Şimdi bu tabloyu güncellediğimde ID
sütun 1 artmalı,
Şimdi ID
2,3,4,5 olacak ..
Sorularım
bir sütunun değeri 1 nasıl artırılır.
Örneğin, bir sütunun ID
1,2,3,4, .. değerlerine sahip olduğunu varsayalım .
Şimdi bu tabloyu güncellediğimde ID
sütun 1 artmalı,
Şimdi ID
2,3,4,5 olacak ..
Yanıtlar:
Tablodaki her değere bir tane eklemek için ...
UPDATE myTable
SET ID = ID + 1
Yeni bir değer oluşturmak için, bir öncekinden daha yüksek (genellikle), IDENTITY ile bir sütun kullanın
ISNULL
ifadeyi kullanın : UPDATE myTable SET ID = ISNULL(ID, 0) + 1
( Bu SO cevabından alınmıştır )
SET [Lic] = [Lic] + @dif
. @Dif değişkeninin pozitif, 0 veya negatif
Bunu dene:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
Bunu IDENTITY
sizin için yapacak olanı kullanabilirsiniz .
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
İlk kaydınızı eklediğinizde Id
, 1'den bir tane alacaksınız .
Oracle'da kod biraz daha karmaşıktır.
Sıra nesnesiyle bir otomatik artış alanı oluşturmanız gerekecektir (bu nesne bir sayı dizisi oluşturur).
Aşağıdaki CREATE SEQUENCE sözdizimini kullanın:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Yukarıdaki kod seq_person adında 1 ile başlayan ve 1 artacak bir sıra nesnesi yaratır. Ayrıca performans için 10'a kadar değeri önbelleğe alır. Önbellek seçeneği, daha hızlı erişim için bellekte kaç sıra değerinin saklanacağını belirtir.
"Kişiler" tablosuna yeni bir kayıt eklemek için, nextval işlevini kullanmamız gerekir (bu işlev, seq_person dizisinden sonraki değeri alır):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
Yukarıdaki SQL ifadesi "Kişiler" tablosuna yeni bir kayıt ekler. "ID" sütununa, seq_person dizisinden sonraki numara atanacaktır. "Ad" sütunu "Lars" ve "Soyadı" sütunu "Monsen" olarak ayarlanacaktır.
Aşağıdakileri deneyebilirsiniz:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)