Veri tabanı çalışmalarında kullanılan en önemli başlıklardan biri de otomatik artan değerdir.
Örnek olarak sıra girilen kaydın sıra numarası veya Id kolonunun değeri otomatik artan değerde ayarlanması işlem kolaylığı sağlayacaktır.
Şimdi Sql Server üzerinde otomatik artan kolon (IDENTITY) nasıl ayarlanır, beraberce inceleyelim.
Identity kolonu ayarlanırken göz önünde bulunması gereken en önemli unsur her tabloda en fazla bir identity kolonu olabileceğidir.
Otomatik artan kolon tablo dizayn ekranında iki farklı şekilde yapılmaktadır.
- İlki kolonunun özelliklerinden “Identity Specification” özelliğini “Yes” olarak ayarlanır. Bu özelliğin altında yer alan iki özellik: “Identity Increment” artışın kaçar kaçar olacağını, “Identity Seed” ise ilk sayının değerini belirtir.
- İkinci şekilde de resmin sağ tarafında yer alan tablo özelliklerinden “Identity Column” seçeneğini seçmektir. Bu şekilde ayarlanması durumunda yukarıdaki iki değer varsayılan olarak 1 olarak ayarlanacaktır.
Kod ile belirtilmek istendiğinde de:
-- IDENTITY [ (seed , increment) ]
id_num int IDENTITY(1,1)
SELECT dbo_TeslimEdenAlan.TeslimNo, dbo_TeslimEdenAlan.TeslimAdi, dbo_TeslimEdenAlan.MontajSirketi, dbo_TeslimEdenAlan.TeslimDurum, dbo_TeslimEdenAlan.Aktif_Pasif FROM dbo_TeslimEdenAlan WHERE (((dbo_TeslimEdenAlan.TeslimDurum)=”EDEN”) AND ((dbo_TeslimEdenAlan.Aktif_Pasif)=-1));
Merhaba; IDENTITY olmayan bir alana IDENTITY özelliği eklemeye çalışıyorum fakat bir türlü olmuyor. Bu konuda yardımcı olurmusunuz.
ALTER TABLE CalismaSaatleriTanim
ALTER COLUMN [Kimlik] INT IDENTITY NOT NULL
Merhaba,
var olan bir kolon üzerinde IDENTITY güncellemesi yapılmıyor. Bu durumda iki seçeneğiniz bulunmaktadır.
Aşağıdaki linkten gerekli işlemleri inceleyebilirsiniz:
https://stackoverflow.com/a/1049305/8092473
hocam merhabalar bir sorum olacak veritabanında yer alan tablolar içindeki id başlıklarında değeri hep sıfır atıyor. ne ekleme yapsam id değerini sıfır olarak işliyor bunu nasıl düzeltebilirim
Merhaba, oluşturduğunuz ID kolonu otomatik artan mı olacak? Ve eklemeyi program tarafında mı yapıyorsunuz
evet. sayfanın yönetim panelinden ekleme yapıyorum. ekleme yaptığımda id numarasını hep sıfır olarak kaydediyor. normal 1-2-3… diye kaydetmesi lazım
İnsert işlemi yaparken kullandığınız sorguyu saitorhan@yandex.com adresine
İnsert işlemi yaparken kullandığınız sorguyu ve tablonun yapısının ekran görüntüsü saitorhan@yandex.com adresine gönderebilir misiniz?
python dan sqlite3 e bağlandım ve bir otomasyon programı yazıyorum. bir tablo için ID nin otomatik artmasını istiyorum. Normalde yeni kullanıcı eklerken
insert into tablo VALUES (?,?,?,?) diye giriyorum ancak bu otomatik artışta ID için de ? koymam gerekir mi ya da ID yi kullanıcıdan almadan ancak diğer bilgileri alarak nasıl veri tabanına kayıt ekleyebilirim bir bilginiz var mı acaba?
Merhaba,
Otomatik artan değerleri komut içersinde vermeye gerek yoktur.
Insert Into Tablo1(kol1, kol2, kol3) VALUES(val1, val2, val3) şeklinde verilmesi yeterlidir.
Sait bey merhaba,
İd kısmında otomatik artan sayı olmasına rağmen 1,2,3,…9,1001,1002 gibi oluyor. Bu sorunu nasıl çözebiliriz. Teşekkürler
Merhaba,
Otomatik artan değer SQL Server’ın kendi içerisinde yönettiği bir süreç olduğundan müdahale etmemekte fayda var.
Sıralı gitmemesinin sebebi de; özellikle Entity Framework gibi yapılar kullanıldığında bu yapıların çalışması sırasında aldıkları sayıları kullanmaları ve bir hata sonucu işlem başarısız olduğunda SQL Server’ı kullanılmayan bu sayıları tekrar kullanmamasından dolayıdır.
Merhaba Sait bey,
Cevabınız için teşekkürler.
İyi çalışmalar…
Merhaba
Benim bir projem var entity freamwork kullandim projede ve sizin soyledigin gibi 1009 dan 2009-a atiyor . benim sorum bu: Acaba bu problem yuzunden gelecekte benim veritabanim bir problem yasarmi?
Merhaba, har hangi bir sıkıntı yaşamazsınız.
Id değeri ne zaman ki int’in max değeri olan 2147483647’i aşarsa o zaman sıkıntı olabilir.
Hocam merhabalar sizi sıkı takip ediyorum yazılı madına çok şey öğrendim sizden yalnız takıldığım bir nokta oldu
Elimde bir yazılım var ve bu yazılımda sipariş sistemi var orders tablosunun içinde yer alan siparis_id mevcut ve bu id her sipariş girildiğin 1 er artıyor 1-2-3-4-5-6 şeklinde ben bunu 47şerli bir şekilde artırmak istiyorum yani bir önceki id numarasına 47 ekleyipsin bu sürekli devam etsin
auto increment ile Phpmyadminden sorgu kodu yapıldığını öğrendim webte ama bir türlü yapamadım
hocam, tablomda primary key tanımladım otomatik şekilde artıyo sıkıntısız fakat. programımda silme işlemi yaptığımda örnek veriyorum sildiğim sayının ID değeri 3, 3’ü siliyor bir daha ekleme yaptığımda yeniden 3 olmasını beklerken bir sayı atlayarak 4 oluyor.
ID FirstName
1 Muhammed
2 Emir
4 Furkan
yani arada bir sayı eksik olarak devam ediyor. programımda EntityFramework altyapısı kullanıyorum sorun oradan kaynaklı olabilirmi? sıralı şekilde ilerlemisini istiyorum ID değerlerinin
Merhabalar,
Bu durum SQL Server’ın normal çalışma prensibidir. Konu Entitiy ile alakalı değil.
Aynı sorun bende de var hocam bunu çözmenin bir yolu var mıdır acaba ?
Bu durum SQL Server’ın kendi içerisinde yönettiği bir durumdur. Elle müdahale edilmemesi en iyisidir.