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..