SQL’de Eklenmiş Bir Satırın IDENTITY
Değerini Nasıl Elde Edeceğinizi Anlamak
SQL Server ile çalışıyorsanız ve eklenmiş bir satırın IDENTITY
değerini elde etmeniz gerekiyorsa, birkaç seçenek mevcuttur. Her bir yöntem kendi sonuçları ve kullanım durumları ile birlikte gelir. Bu yazıda, eklenmiş bir satırın IDENTITY
değerini elde etmenin en yaygın yollarını keşfedeceğiz ve her yöntemin ne zaman kullanılacağı konusunda netlik kazandıracağız.
IDENTITY Değerini Elde Etmenin Zorluğu
Bir veritabanı tablosuna kimlik sütunu bulunan yeni bir kayıt eklediğinizde, SQL Server otomatik olarak o sütun için benzersiz bir değer üretir. Ancak, ekleme işlemini gerçekleştirdikten hemen sonra bu üretilen değeri elde etme gereği duyabilirsiniz. Bu, kayıt tutma, sonraki işlem aşamaları veya diğer tablolarla ilişkiler kurma gibi çeşitli nedenler için kritik öneme sahip olabilir.
IDENTITY Değerlerini Elde Etmek İçin Mevcut Yöntemler
-
@@IDENTITY
Kullanarak- Açıklama: Mevcut oturumda, tüm kapsamlar arasında, herhangi bir tablo için üretilen son kimlik değerini döndürür.
- Dikkat: Tetikleyiciler tarafından üretilenleri de dahil olmak üzere tüm kapsamlar üzerinden değerleri alması nedeniyle, beklenmeyen bir değeri yanlışlıkla elde etme riski vardır.
- Kullanım Durumu: Potansiyel kafa karışıklığı nedeniyle genel olarak önerilmez.
-
SCOPE_IDENTITY()
Kullanarak- Açıklama: Mevcut oturumda ve mevcut kapsam içinde, herhangi bir tablo için üretilen son kimlik değerini döndürür.
- Öneri: Bir kimlik değeri alırken genel olarak en güvenli ve en güvenilir yöntemdir.
- Kullanım Durumu: Çoğu standart işlem için idealdir.
-
IDENT_CURRENT('tableName')
Kullanarak- Açıklama: Belirli bir tablo için, oturum veya kapsamdan bağımsız olarak, üretilen son kimlik değerini döndürür.
- Not: Tabloyu belirtmenin kritik olduğu durumlarda bu yöntemi kullanın, ancak bu nadir bir ihtiyaçtır.
- Kullanım Durumu: Oturumunuz tarafından son zamanlarda değiştirilmemiş tablolardan değer almanız gerektiğinde yararlı olabilir.
-
OUTPUT
İfadesini Kullanarak- Açıklama: O belirli
INSERT
ifadesi aracılığıyla eklenen her satıra, üretilen kimlik değerleri dahil, erişim sağlar. - Artılar: Önceki yöntemlere göre daha basittir. Ekleme sonrası hata senaryolarında bile doğruluğu garanti eder.
- Eksiler: Sonuçları bir tablo değişkenine veya geçici tabloya eklemek gerektiğinden, biraz daha ayrıntılıdır.
- Özel Not: Sorgunuz paralel yürütme planlarını içeriyorsa, kimlik değerini elde etmenin garantili tek yöntemidir.
- Açıklama: O belirli
Sonuç
IDENTITY
değerini elde etme yönteminin her birinin güçlü ve zayıf yönleri vardır. İşte karar vermenize yardım edecek hızlı bir özet:
- Potansiyel belirsizlik ve kafa karışıklığına tahammül ediyorsanız
@@IDENTITY
kullanın. - Doğruluğu sağlamak için çoğu normal durumlarda
SCOPE_IDENTITY()
tercih edin. - Belirli bir tablodan bilgi almanız gerektiğinde
IDENT_CURRENT()
seçeneğini değerlendirin. - Ekleme işleminizden birden fazla değere ihtiyaç duyuyorsanız, özellikle karmaşık sorgularda veya hata yönetimi sırasında
OUTPUT
ifadesini uygulayın.
Son Düşünceler
Bu yöntemleri anlayarak, SQL Server’da kimlik değerlerini etkili bir şekilde yönetebilir ve elde edebilirsiniz, böylece veritabanı işlemlerinizin bütünlüğünü ve güvenilirliğini artırabilirsiniz.