1-@@IDENTITY:
Son işlem yapılan sorgudan elde edilen Id'yi elde etmemizi sağlar. Aşağıdaki örnekte, insert yapıldıktan sonra ortaya çıkan Id şu şekilde bulunmuştur.
insert into Ogrenci values ('Ergin Arslan',81,12345)
(1 row(s) affected)
dedikten sonra aşağıdaki komutu çalıştırırsak, şu çıktıyı elde ederiz;
select @@IDENTITY
@@Identity'nin dezavantajı, Trigger içerisinde kullanılamamasıdır. Bu komut yerine daha çok Scope_Identity() kullanılır.
2-SCOPE_IDENTITY:
Yukarıda da bahsettiğimiz gibi, @@Identity'den farkı, triggerlar içerisinde kullanılabilmesidir. Ayrıca, @@Identity, herhangi bir scope'dan ve tablodan bağımsız çalışır. Scope_Identity, sadece bulunduğu scope'taki id sonucunu getirir. Trigger, StoredProcedure ... vs. işlemlerde kullanılabilir. En çok tercih edilen yöntemdir. Kullanılışı;
insert into Ogrenci values ('Ergin Arslan',81,12345)
select SCOPE_IDENTITY()
3-IDENT_CURRENT('TabloAdı'):
Parametre olarak aldığı tablodaki son işlem yapılan id'nin sonucunu getirir. Kullanılışı;
insert into Ogrenci values ('Ergin Arslan',81,12345)
select IDENT_CURRENT('Ogrenci')
0 yorum:
Yorum Gönder