DBCC CHECKIDENT (Transact-SQL)
Belirtilen tablo için geçerli kimlik değerini denetler ve gerekmiyorsa, kimlik değerini değiştirir.DBCC CHECKIDENT için el ile de kullanılabilir küme kimlik sütun için yeni bir geçerli kimlik değeri.
DBCC CHECKIDENT
(
table_name
[ , { NORESEED | { RESEED [ , new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]
Bağımsız değişkenler
table_name
Tablo için geçerli kimlik değerini denetlemek adıdır.tablo Gereken belirtilen kimlik sütun içerir.Tablo adları için kurallara uymanız gerekir tanımlayıcılar.noreseed
Geçerli kimlik değeri değiştirilmeyecek belirtir.reseed
Geçerli kimlik değeri değiştirilmelidir belirtir.new_reseed_value
Kimlik sütun geçerli değeri kullanmak için yeni değerdir.no_infomsgs İLE
Tüm bilgi iletileri bastırır.
Remarks
Geçerli kimlik değeri için yapılan belirli düzeltmeleri parametre özellikleri değişir.
DBCC CHECKIDENT komutu |
Kimlik düzeltme ya da yapılan düzeltmeler |
---|---|
dbcc checkident) table_namenoreseed) |
Geçerli bir kimlik değeri sıfırlanır.DBCC CHECKIDENT kimlik geçerli değerini ve kimlik sütun geçerli en büyük değeri verir.Iki değer aynı değil, olası hatalar ya da değerler dizisini boşluklar önlemek için kimlik değerini sıfırlamanız. |
dbcc checkident) table_name ) veya dbcc checkident) table_namereseed) |
Bir tablo için geçerli kimlik değeri kimlik sütunda depolanan en yüksek kimlik değerinden küçük, en büyük değer, kimlik sütun kullanarak sıfırlayın. |
dbcc checkident) table_namereseed, new_reseed_value ) |
Geçerli bir kimlik değeri küme için new_reseed_value. Varsa, hiçbir satır, tabloya eklenmiş olduğundan, tablonun oluşturulmuş ya da tüm satırların TRUNCATE tablo deyim kullanılarak kaldırılmışsa, DBCC CHECKIDENT çalıştırdıktan sonra eklenen ilk satırını kullanır. new_reseed_value kimlik olarak. Aksi halde, eklenen bir sonraki satıra kullanır. new_reseed_value + Geçerli artırma değeri. Tablo boş değilse, kimliği en büyük değerinden daha az bir sayı kimlik değerini ayarlama sütun aşağıdaki durumlardan birinde oluşabilir:
|
Özel durumlar
Aşağıdaki tablo DBCC CHECKIDENT geçerli kimlik değeri otomatik olarak sıfırlanmaz ve bu değeri sıfırlamak için yöntemler sağlar koşulları listeler.
Koşul |
Yöntemleri Sıfırla |
---|---|
Geçerli kimlik değeri en yüksek değerden büyükse tablo. |
veya
|
Gelen tüm satırlar siliniyor tablo. |
DBCC CHECKIDENT (yürütmektable_namereseed, new_reseed_value) ile new_reseed_value istenen başlangıç değerine ayarlayın. |
Kaynağı değeri değiştirme
Kimlik sütun, yüklenen ilk satır için eklenen değer çekirdek değerdir tablo.Geçerli kimlik değeri ile artış değeri geçerli bir kimlik değeri için oluşturulan son kimliği değeri olan tüm sonraki satırlar içeren tablo veya Görünüm.Daha fazla bilgi için bkz:Oluşturma ve tanımlayıcı sütunları değiştirme.
Aşağıdaki görevleri gerçekleştirmek için DBCC CHECKIDENT kullanamazsınız:
Özgün Tablo veya Görünüm oluşturulduğunda, kimlik sütun için belirtilen çekirdek değerini değiştirin.
Varolan satırları reseed bir tablo veya Görünüm.
Özgün üretim değerini değiştirin ve varolan tüm satırları reseed hakkında bilgi için kimlik sütun olarak bırakın ve yeni çekirdek değer belirterek yeniden oluşturmanız gerekir.Tablo veri içeriyorsa, varolan satırların belirtilen başlangıç ve artış değerleri kimlik numaraları eklenir.Satırları güncelleştirildiği sırada garanti edilmez.
Sonuç Kümeleri
Seçeneklerden herhangi birini DBCC CHECKIDENT döndürür, kimlik sütun içeren bir tablo için olup olmadığı belirtilir (değerleri farklı olabilir):
Checking identity information: current identity value '290', current column value '290'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
İzinler
Arayanın gerekir tablonun sahibi veya üyesi sysadmin sabit sunucu rolü, db_owner sabit veritabanı rolü, veya db_ddladmin sabit veritabanı rolünün.
Örnekler
C.Gerekli olan, geçerli kimlik değeri sıfırlanıyor.
Gerekmiyorsa, aşağıdaki örnek, geçerli kimlik değerini sıfırlar, Employee ' de tablo AdventureWorks Veritabanı.
b.Geçerli kimlik değeri bildirdiği için
Aşağıdaki örnek, geçerli kimlik değeri bildiriyor Employee ' de tablo AdventureWorks Veritabanı ve doğru değilse, kimlik değerini düzeltmez.
c.Yeni bir değer için geçerli kimlik değeri zorlama
Aşağıdaki örnek, geçerli kimlik değeri zorlar EmployeeID sütun, Employee Tablo için 300 değeri. Çünkü tablo varolan satırları varsa, eklenen bir sonraki satıra 301 olan değer, geçerli kimlik değeri artı 1, sütun için tanımlanmış geçerli artış değeri olarak kullanır.