Ms Sql Server Son Girilen Kayıdın Id'sini Almak

MS SQL Server 'da sisteme en son girilen kayıdın Id 'sini almak için aşağıdaki yol izlenir.

 --INSERT KOMUTUMUZ
SELECT SCOPE_IDENTITY() 

Id 'den kasıt tablonun "primary key" (birincil anahtar) kolonudur ve bu kolon "int" data tipinde olmayabilir. Bu yüzden "Max()" fonksiyonu ile son kayıda ulaşmak yerine SCOPE_IDENTITY() metodu ile bu kaydı elde etmek daha doğrudur.

SCOPE_IDENTITY() metodu sıklıkla "stored procedure" içinde kullanılır. Kullanım amacı genelde bir kayıt sisteme INSERT edildikten hemen sonra o kayıt ile başka bir işlem yapılması isteğidir. Bu yüzden ilgili metod kullanılarak "primary key" 'i elde edilir.

Aşağıdaki örneği inceleyelim..

INSERT INTO Tablo1 (kolon1, kolon2, kolon3) VALUES ('Deger1', 'Deger2', 'Deger3')

DECLARE @SON_KAYIT_ID AS INT
SET @SON_KAYIT_ID = (SELECT SCOPE_IDENTITY())

UPDATE Tablo2
SET
Kolon1 = 'Deger1',
Kolon2 = 'Deger2'
WHERE Tablo1_Id = @SON_KAYIT

Örnekte tabloya bir kayıt INSERT edildikten sonra @SON_KAYIT değişkeni yaratılıyor ve SCOPE_IDENTITY metodu ile bu kayıdın "primary key" 'i, yaratılmış olan değişkene atanıyor. Daha sonra bu değişken, ikinci işlem olan UPDATE sorgusunda kullanılıyor..



İlginizi Çekebilir

Ms Sql If Else Kullanımı

Ms Sql Tablo Adını Sorgu İle Değiştirmek

Ms Sql Kullanıcı Tarafından Yaratılmış Tabloların Listesini Almak

Ms Sql Temp Tabloyu Drop Etmek

Ms Sql Bir Tablodaki Rastgele Bir Satırı Getirmek