Günlük SQL Server geliştirmesinde, Identity tipinin kimlik sütunu genellikle bir tablo yapısının kendi kendine büyüyen sayısı olarak kullanılır. Örneğin, makale numarası, kayıt seri numarası vb. Kendi kendine büyüyen tanımlanmış sütunlara yapılan referanslar, veritabanı programlarının geliştirilmesini büyük ölçüde kolaylaştırır, ancak bazen bu inatçı alan tipi de bazı sorunlara yol açabilir.
1. Tanımlama sütununun alan değerlerini değiştirin:
Bazen, bir fonksiyonu uygulamak için, Identity tipindeki bir alanın değerini değiştirmek gerekir, ancak bu işlem kimlik sütununun türü nedeniyle varsayılan olarak izin verilmez. Örneğin, veritabanına normal şekilde eklenen 5 veri parçası varsa ve 2 veri bu sırada silinirse, veri tekrar eklenirse, kendi kendine büyüyen tanımlama sütununa otomatik olarak 6 değeri atanır, ancak veri ekerken 3 değeri vermek isterseniz, varsayılan olarak izin verilmez. Bu alanın değerini değiştirmek istiyorsanız, tanımlama alanının değerinin eklenmesini tamamen kontrol edebilirsiniz, hâlâ yöntemler var, haha.
SET IDENTITY_INSERT /[TABLE/] [AÇIK| KAPALI Yukarıdaki ifadeyi kullanarak, bir tablodaki kendi kendine büyüyen tanımlayıcı sütununun otomatik olarak büyüyüp büyümeyeceğini, yani bir kayıt eklerken tanımlayıcı sütun alanının değerini manuel olarak belirtmenize izin verilip verilmediğini kolayca kontrol edebilirsiniz. Eğer on olarak belirtilirse, eklerken tanımlayıcı sütun alanının değerini belirtebilirsiniz, bu da atanan değeri otomatik olarak büyütmez. Tabii ki, eğer bu ifadeyi kullanırsanız, varsayılan duruma geçişi kapatmak için bu ifadeyi kullanmanız gerekir, aksi takdirde alan bir dahaki veri eklediğinizde atanan değeri otomatik olarak artırmaz.
2. Tanımlama sütununun alan değerini sıfırlayın:
Veri kaydının bir kısmı silindiğinde, yeni veri kaydı daha sonra eklendiğinde, tanımlama sütununun değeri uzun bir boşta aralık olur ve bu çok rahatsız edici görünür. Tablodaki tüm kayıtları silseniz bile, kimlik sütununun değeri otomatik olarak artmaya devam eder ve sıfırdan büyümek yerine sonsuza dek artacaktır. Kendi kendine büyüyen tarlanın tohum değeri aşağıdaki ifadeyle sıfırlanabilir:
DBCC CHECKIDENT(TABLE, [RESEED| NORESEED], [1]) Yukarıdaki ifade, belirtilen tablonun tohum değerinin 1'e sıfırlanmasını sağlar. Ancak, tohumu 1'e sıfırlamak istemiyorsanız, üçüncü parametreyi kullanmak istediğiniz tohum değeriyle değiştirebilirsiniz. Mevcut tohumu bilmek istiyorsanız, tanımlanan tohumu sıfırlamak yerine NORESSEED kullanmanız gerekir. |