MS-SQL İdentity Kolonun Boş Sıra Atlaması

MS-SQL İdentity Kolonun Boş Sıra Atlaması

Bu dersimizde tablolardaki identity kolonların aralarda 1, 2 sıra atlamasının sebebini göreceğiz.

Selamlar,

Bu dersimizde MS-SQL de tablolardaki Identity alanların bazen 1 yada 2 sıra atladığını görürüz bunun sebebi nedir onu açıklamaya çalışacağım.

Arkdaşlar sql de tablolarda

Identity(1,1) 

şeklinde bir kolon tanımladığımızda normal şartlarda bu kolona müdahele ettirmiyor ve otomatik olarak birer birer arttırıyor. Ama bazen bakıyoruz ki kayıt olmadığı halde identity sırası 1 yada 2 sıra atlamış bunun sebebini biraz araştırdım birazda tecrübelerime ve testlerime dayanarak çözdüm.

Bu sorunun sebebi insert hatalarından kaynaklanıyor. (Deneyebilirsiniz.)

Yani şöyle ki bir insert komutunuz var ve bir virgülü eksik yazdınız. Programdan kaydet butonuna tıkladınız ve hata aldınız. 

İnsert hatasız yapılsaydı varsayalım ki ID'si 12569 olacaktı ama hata verdi. Hatayı düzelttiniz ve yeni bir kayıt daha eklediniz bu yeni kaydın ID 12570 oluyor. 12569 kayıp.

Burada benim ulaştığım sonuç şu şekilde:

SQL insert komutu okumaya başladığı anda 12569 ID numarasını hafızasına alıyor. Kayıt başarısız olduğunda o ID yine de kullanılmış olduğundan o ID'yi serbest bırakmıyor. Bu yüzden de son kayıt(12570) ile bir önceki kaydın(12568) arasında olması gereken 12569 ID numarası tabloda bulunmuyor.

Bu olay bazı durumlarda sorun çıkarabilir mi bilmiyorum ama ben daha önce bir sorun yaşamadım. Belki yaşayan birileri vardır yada sebebini merak edenler vardır diye paylaşmak istedim.

Bu dersimizde bu kadar arkadaşlar.

Bol kodlu günler.

Mustafa BÜKÜLMEZ
Hazırladığım ve yüklediğim tüm dersleri deneyip çalıştığını onayladıktan sonra ekliyorum. Çalışmayan kodlar deneyimli kişiler için sorun olmayabilir ama yeni başlayanlar için problemdir. Hem yazılıma gönül vermiş sevgili arkadaşlarıma yardımcı olmak hem daha sonra lazım olduğunda arama süremi kısaltmak için paylaşıyorum.. -- *Bilgi paylaştıkça çoğalır. *Bir mum diğer mumu yakmakla ışığından bir şey kaybetmez. Aksine birlikte etrafı daha çok aydınlatırız. -- Lisede Ağ sistemleri ve Yönetimi bölümü Üniversitede de Bilgisayar Programcılığı okudum. Şuanda da Kahramanmaraş'ta olan Gemciler Güven Metal Sanayi ve Ticaret A.Ş firmasında Bilgi İşlem Müdürü olarak çalışmaktayım. Yaptığım işe ek olarak yine Kahramanmaraş'ta olan 1453 Yazılım firmasının kurucu ortaklarından biriyim. ----- Kişisel Bloğum : https://csharpiledundenbugune.blogspot.com.tr/
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git