Selamlar arkadaşlar, günaydın..
SqlServerda bi veritabanım var, AutoIncrement ile 1 er arttırıyor PrimaryKey olan ID kolunun her insert yaptıgımda.. Ancak insert komutunu yalladığımda eğer sorgu içerisinde bi sorun varsa ve başarılı olamazsa, yine de ID sütünunun increment ını tetikliyo bir arttırıyo, girip bakıyorum tablo ya kayıt yok, daha sonra bi sorgu daha yolluyorum bu sefer ekleniyor, açıp bakıyorum IDnin son hali 45 iken, 46 olması gerekirken o hatalı sorgu nedeniyle tetiklendigi için ID 47 oluyo.. Ne önerirsiniz?
Db ye insert başarılı olmuyor ama ID tetikleniyor.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.
sql serverda varmı bilmiyorum ama oracle da inser sorgunun iiçinde <sequnece_adi.nextval> kullanirsan bahsettiğin sorunla karşılaşmıyorsun.
Örn : gibi bir kullanımda sadece insert başarılı olması halinde sequence den sıradaki numarayı alır.
Örn :
Kod: Tümünü seç
İnsert into deneme (id,ad,soyad) values (seq_denemeid.nextval,'Gurgah',gurgah);
Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.
Tşk ederim kardeş. Denedim olmadı, demekki yokmuş sql serverda.. Yinede saolGURGAH yazdı:sql serverda varmı bilmiyorum ama oracle da inser sorgunun iiçinde <sequnece_adi.nextval> kullanirsan bahsettiğin sorunla karşılaşmıyorsun.
Örn :gibi bir kullanımda sadece insert başarılı olması halinde sequence den sıradaki numarayı alır.Kod: Tümünü seç
İnsert into deneme (id,ad,soyad) values (seq_denemeid.nextval,'Gurgah',gurgah);
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.
Zaten bırakın artsın numara. Başarılı veya başarısız kayıt olma durumuna kafayı takıp ardışık tüm sayıları görmek size nizami gelebilir ama aynı anda çoklu kullanım esnasında işlerin yolunda gitmesi için numaraların bu şekilde artması şart. Eğer illaki sizin verdiğiniz değer alana yazdırılacaksa dagibi bir sorguyla gerekli ayarı yaparak istediğiniz değeri yazabilirsiniz ve işlemden sonra da bu ayarı normale almanız gerekmektedir.
Kod: Tümünü seç
SET IDENTITY_INSERT deneme ON
insert into deneme (id,ad,soyad) values (11,'Ad','Soyad')
SET IDENTITY_INSERT deneme OFF
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.
Çok tşk ederim cevap için. peki sizce transaction kullansam işe yarar mı bu durumda?sabanakman yazdı:Zaten bırakın artsın numara. Başarılı veya başarısız kayıt olma durumuna kafayı takıp ardışık tüm sayıları görmek size nizami gelebilir ama aynı anda çoklu kullanım esnasında işlerin yolunda gitmesi için numaraların bu şekilde artması şart. Eğer illaki sizin verdiğiniz değer alana yazdırılacaksa dagibi bir sorguyla gerekli ayarı yaparak istediğiniz değeri yazabilirsiniz ve işlemden sonra da bu ayarı normale almanız gerekmektedir.Kod: Tümünü seç
SET IDENTITY_INSERT deneme ON insert into deneme (id,ad,soyad) values (11,'Ad','Soyad') SET IDENTITY_INSERT deneme OFF
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.
ID her şekilde artacak (artmalı da) ama yapılan kayıt işlemlerini toplamda onaylamak veya iptal etmek için transaction sağlıklı bir yöntem olacaktır. Ayrıca transaction başlama - bitiş süreci mümkün olduğunca kısa olmalıdır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.
Tekrar Tşk ederim.sabanakman yazdı:ID her şekilde artacak (artmalı da) ama yapılan kayıt işlemlerini toplamda onaylamak veya iptal etmek için transaction sağlıklı bir yöntem olacaktır. Ayrıca transaction başlama - bitiş süreci mümkün olduğunca kısa olmalıdır.