Sql Server'da bir insert işlemi sonucu üretilmiş olan identity'i bulmak istiyorum. Bunun için:
select top 1 id from tablo order by id desc
gibi bir sorgu mu yazmalıyım yoksa bunun hazır bir fonksiyon gibi daha mantıklı vbir yolu var mı?
kaanbey
30.07.2019 22:42
Insert işleminden sonra eklenen son kaydın ID değerini aşağıdaki gibi SCOPE_IDENTITY() fonksiyonu ile alabilirsiniz.
INSERT INTO dbo.tbl_kisiler(ad,soyad) VALUES('adi','soyadi') SELECT SCOPE_IDENTITY()
ID değerini bir değişkene aktarmak isterseniz de;
set @id int=SCOPE_IDENTITY()
Ancak paralel programlama ya da birden çok sunucu ile aynı veritabanınu kullanma gibi durumlarda SCOPE_IDENTITY() sizi yanıltabilir, çünkü aslında temel olarak yaptığı şey, bir tablodaki son Identity değerini getirmektir.
Tablodaki son identity değerini elde etmek için aşağıdaki seçenekleri de kullanabilirsiniz:
SELECT IDENT_CURRENT('TabloAdi')
@@IDENTITY
IDENT_CURRENT
bkz: Sql Server'da Eğer Yoksa Eklemek Eğer Varsa Güncellemek
Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.
mbologlu 0
kankito 0
utku33 1
utku33 0
İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.