Aracılığıyla paylaş


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.

Topic link iconTransact-SQL sözdizimi kuralları

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:

  • Sonraki ekleme operasyonlar birincil anahtar veya BENZERSIZ kısıtlama, kimlik sütun varsa, hata iletisi 2627 oluşturulacak tablo oluşturulan kimlik değeri varolan değerlerle çakışacak çünkü.

  • Sonraki ekleme işlemlerinin, birincil anahtar veya BENZERSIZ kısıtlama yok, yinelenen kimlik değerleri neden olur.

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

  • DBCC CHECKIDENT (yürütmektable_nameNORESEED) sütunundaki geçerli en büyük değeri belirlemek ve sonra o değeri olarak belirtmek için new_reseed_value bir DBCC CHECKIDENT () içindetable_namereseed, new_reseed_value) komutu.

veya

  • DBCC CHECKIDENT (yürütmektable_namereseed, new_reseed_value) ile new_reseed_value küme çok düşük bir değer ve DBCC CHECKIDENT () çalıştırın.table_nameRESEED) değeri düzeltmek için.

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.