SQL Server’da IDENTITY Özelliği

SQL Server üzerinde IDENTITY özelliği büyük öneme sahip bir konudur. Tablo dizaynı sırasında Primary Key özelliği verilen alanlara ayrıca IDENTITY verilmesi ile bu ayırt edici alanların otomatik olarak belirlenmesi sağlanır. Böylece girilmesi zorunlu olan ve ayırt edici olması gereken Primary Key’lere değer atanması işlemi otomatikleştirilmiş olur.

IDENTITY ile ilgili önemli bazı bilgilerle konuyu açalım. IDENTITY alanlara, Seed ve Increment özellikleri verilerek otomatik sayının kaçtan başlayacağı ve kaçar kaçar artacağı belirlenmiş olur. Bu değerlerin varsayılan değerleri 1’dir. Yani bir tabloda IDENTITY özelliği olan bir alan açıldığında varsayılan olarak alt sınır 1’den başlayarak 1’er artar ve devam eder. IDENTITY özelliği verildikten sonra kayıt almaya başlayan bir tabloda bir kayıt silinmesi halinde (örneğin son kayıt) o numaradan sonra sıradan gelen numara verilecektir. Bu nedenle bir tablonun geçerli IDENTITY numarası her zaman tabloda gördüğümüz son IDENTITY’nin Incemement sayısı kadar fazlası olmak durumunda değildir.

Bir tablonun geçerli IDENTITY’sini bulmak için,

SELECT IDENT_CURRENT(‘tabloadı’) komutu çalıştırılmalıdır.

Tablo üzerinde son yapmış olduğunuz işleme ait IDENTITY değerini okumak için ise SCOPE_IDENTITY özelliğinden faydalanılır. Örneğin bir tablonuz var, bir INSERT ifadesi yolladınız ve size otomatik bir numara verildi. Siz bu numarayı kodun hemen devamında alarak başka bir işlem için kullanmak istiyorsunuz ama o esnada tabloya INSERT gönderen başka kullanıcılar da oldu. Özellikle çok kullanıcılı sistemlerde mevcut işlemin ID’sini uygulamaya göstermek için bu özelliği kullanıyoruz.

INSERT INTO tabloadı (alanadı1, alanadı2) VALUES (‘deger1’, ‘deger2’)
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]

IDENTITY’ler ile ilgili olarak işe yarar bir başka komutu ise DBCC ifadesi ile yapacağız. Önce ihtiyacı örneklendirelim. Bir tablonuz var, IDENTITY alanı var ve içinde test kaydı olarak 9000 tane kayıt girildi. Sistem canlıya geçecek ama IDENTITY 9001’i gösteriyor. Müşteriniz ID’nin 1’den başlamasını rica etti. Aşağıdaki komut mevcut IDENTITY’yi istediğiniz alt sınıra çeker.

DBCC CHECKIDENT(‘tabloadı’, RESEED,1)

 

Alıntıdır.İşimi gören bir yazı oldu.

http://onurkulabas.blogspot.com.tr/2008/08/sql-serverda-identity-zellii.html

Bir Cevap Yazın