• 21 Kasım 2024 09:26

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

Sql Server Auto Increment (Otomatik Artan) Kolon Ayarlama

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

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)

19 thoughts on “Sql Server Auto Increment (Otomatik Artan) Kolon Ayarlama”
  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

  2. 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

    1. Merhaba, oluşturduğunuz ID kolonu otomatik artan mı olacak? Ve eklemeyi program tarafında mı yapıyorsunuz

  3. 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

  4. 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?

    1. Merhaba,
      Otomatik artan değerleri komut içersinde vermeye gerek yoktur.
      Insert Into Tablo1(kol1, kol2, kol3) VALUES(val1, val2, val3) şeklinde verilmesi yeterlidir.

  5. 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

    1. 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.

      1. Merhaba Sait bey,
        Cevabınız için teşekkürler.
        İyi çalışmalar…

      2. 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?

      3. 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.

  6. 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

  7. 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

      1. Aynı sorun bende de var hocam bunu çözmenin bir yolu var mıdır acaba ?

      2. Bu durum SQL Server’ın kendi içerisinde yönettiği bir durumdur. Elle müdahale edilmemesi en iyisidir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.