MsSQL Son eklenen kaydın ID sini almak

Herkese merhaba. Bu yazımda MSSQL veritabanına son eklenen verinin ID değerini almayı anlatacağım. Ben C# üzerinde örneklendirerek anlatacağım fakat sizler aynı yöntemi, veritabanı MSSQL olduğu sürece faklı dillerlede de kullanabilirsiniz. Belki Select id from tablo_adi order by id desc diyerek son verinin ID değerine ulaşanlar yada ulaşabileceğini düşünenler vardır. Teknik olarak bu şekilde de son verinin ID değerine ulaşabilirsiniz ama bu yöntem ne kadar doğru bir yöntemdir ve ne kadar düzgün çalışır orası tartışılır...

Büyük bir proje yazdığınızı düşünün. Bir çok yönetici, bir çok veri girişi yapıyor ve her veri girişinden dönen ID değerine göre de yeni eklemeler yada güncellemeler yapılıyor. Böyle bir durumda yukarıda bahsettiğim yöntemle çalışarak stabil ve performanslı bir sistem yazmanız imkansızdır. Bu noktada devreye, Microsoft SQL veritabanının güzel bir fonksiyonu olan ”SCOPE_IDENTITY()” giriyor. Kullanılışı iste şu şekilde;

INSERT INTO blog (baslik,icerik)
Values('Bu bir başlıktır','Bu bir içeriktir');
SELECT SCOPE_IDENTITY() as gelenid

Bu SQL cümleciği çalıştığında veritabanındaki blog tablosuna başlık ve içerik ekleme işlemini yaptıktan sonra, geriye gelenid isimli bir sütunda son eklenen verinin ID değerini dönderecektir. C#'ta şu şekilde kullanabilirsiniz;

SqlCommand cmd=new SqlCommand("INSERT into blog (baslik,icerik) values('başlık 1','içerik 1'); SELECT SCOPE_IDENTITY() as gelenid",conn);
int id = Convert.ToInt32(cmd.ExecuteScalar());

id isminde, sayı tipinde bir değişken tamamlayıp, çalıştırdığımız sqlcommand'dan dönen sonucu bu değişkene eşitliyoruz. Artık aldığınız id değerini istediğiniz gibi kullanabilirsiniz. Fayfalı olması ümidiyle, hepinize kolay gelsin (:

Sosyal Ağlarda Paylaşın

Share on Tumblr

Facebook Yorumları


Yorumlar (0)

Henüz hiç yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yapın