dbcc CHECKIDENT (Transact-SQL)
Belirtilen tablo için geçerli kimlik değerini denetler SQL Server 2008 R2 ve gerekiyorsa, değiştirir kimlik değeri.dbcc CHECKIDENT el ile küme için yeni ve geçerli bir kimlik değeri kimlik sütuniçin de kullanılabilir.
Sözdizimi
DBCC CHECKIDENT
(
table_name
[, { NORESEED | { RESEED [, new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]
Bağımsız değişkenler
table_name
' % S'tablo tablo için geçerli kimlik değerini denetlemek adıdır.Belirtilen tablo kimlik sütuniçermesi gerekir.Tablo adları için kuralları ile uymak gerekir tanımlayıcıları.NORESEED
Geçerli kimlik değerini değiştirilmemesi gerektiğini belirtir.RESEED
Geçerli kimlik değerini değiştirilmelidir belirtir.new_reseed_value
Kimlik sütungeçerli değeri olarak kullanılacak yeni değerdir.NO_INFOMSGS İLE
Bilgi tüm iletileri bastırır.
Açıklamalar
Geçerli kimlik değerini yapılan belirli düzeltmeleri parametresi belirtimleri bağlıdır.
dbcc CHECKIDENT komutunu |
Kimlik düzeltme veya yapılan düzeltmeler |
---|---|
dbcc CHECKIDENT ( table_name, noreseed) |
Geçerli kimlik değeri sıfırlanmaz.dbcc CHECKIDENT, geçerli kimlik değerini ve kimlik sütungeçerli en büyük değeri verir.İki değer aynı değil, olası hataları ya da değerler dizisini boşluklar önlemek için kimlik değerini sıfırlamalısınız. |
dbcc CHECKIDENT ( table_name ) veya dbcc CHECKIDENT ( table_name, reseed) |
Bir tablo için geçerli kimlik değerini kimlik sütunsaklanan en yüksek kimlik değeri azsa, kimlik sütunen büyük değer kullanılarak ayarlanır.Aşağıdaki istisnalar bölümüne bakın. |
dbcc CHECKIDENT ( table_name, reseed, new_reseed_value ) |
Geçerli kimlik değerini küme için ise new_reseed_value.Hiçbir satır tablo tablo oluşturuldu veya truncate table deyimkullanarak tüm satırları kaldırıldı, dbcc CHECKIDENT çalıştırdıktan sonra eklenen ilk satırı kullanır beri eklenmemişse new_reseed_value olarak kimliği.Eklenen sonraki satır yoksa kullanır new_reseed_value + Geçerli artış değer. tablo boş değilse, kimlik sütun en büyük değerden daha küçük bir sayıya kimlik değerini ayarlama aşağıdaki koşullardan biri neden olabilir:
|
Özel durumlar
Aşağıdaki tablo dbcc CHECKIDENT geçerli kimlik değeri otomatik olarak sıfırlanmaz ve değerini sıfırlamak için yöntemler sağlar koşulları listeler.
Koşul |
Yöntemleri Sıfırla |
---|---|
Geçerli kimlik değerini tabloen büyük değerden daha büyük. |
veya
|
tablotüm satırlar silinir. |
dbcc CHECKIDENT execute (table_name, reseed, new_reseed_value) ile new_reseed_valueolarakküme istediğiniz başlangıç değeri. |
Tohum değerini değiştirme
Tohum içine tabloyüklenen ilk satırın kimlik sütun değerini değerdir.Tüm sonraki satır, geçerli kimlik değerini ve geçerli kimlik değeri tablo ya da görünüm için oluşturulan son kimlik değeri olduğu artış değeri içeriyor.Daha fazla bilgi için, bkz. Oluşturma ve tanımlayıcı sütunları değiştirme.
dbcc CHECKIDENT, aşağıdaki görevleri gerçekleştirmek için kullanamazsınız:
tablo veya Görünüm oluşturulduğunda, kimlik sütun için belirtilen özgün tohum değerini değiştirin.
Bir tablo veya görünümde varolan satırları reseed.
Özgün tohum değerini değiştirin ve varolan tüm satırları reseed için kimlik sütun ve yeni tohum değeri belirterek yeniden oluşturmanız gerekir.tablo veri içerdiğinde, kimlik numaraları belirtilen başlangıç ve artış değerleri içeren satırları eklenir.Satır güncelleştirildiği sırada garanti edilmez.
Sonuç Kümeleri
Seçeneklerden herhangi birini dbcc CHECKIDENT döndüren bir kimlik sütuniçeren bir tablo için olup olmadığı belirtilir (değerleri değişebilir):
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 tablosahibi veya gerekir üye olmanız sysadmin sabit sunucu rolü, db_owner veritabanı rolü, sabit veya db_ddladmin veritabanı rolüsabit.
Örnekler
A.Geçerli kimlik değerini, gerektiğinde sıfırlama
Aşağıdaki örnek gerekmiyorsa, geçerli kimlik değerini sıfırlar, AddressType tablo AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType");
GO
B.Geçerli kimlik değerini raporlama
Aşağıdaki örnek, geçerli kimlik değerini bildirir AddressType tablo AdventureWorks2008R2 veritabanı ve yanlış ise kimlik değerini düzeltmez.
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType", NORESEED);
GO
C.Yeni bir değer için geçerli kimlik değerini zorlama
Aşağıdaki örnek, geçerli kimlik değerini zorlar AddressTypeIDsütun AddressType10 değeritablo . tablo varolan satırları olduğundan, eklenen sonraki satır 11 değeri, geçerli kimlik değerini artı 1, sütuniçin tanımlanmış geçerli artış değerini kullanır.
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType", RESEED, 10);
GO