• 25 Ekim 2021 03:42

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)

13 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…

  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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.