DBCC CHECKIDENT (Transact-SQL)
Sprawdza, czy bieżąca wartość tożsamości dla określonej tabela w SQL Server 2008 R2 i jeśli to konieczne, zmiany wartości tożsamości.Można również użyć DBCC CHECKIDENT ręcznie zestaw nową wartość bieżącą tożsamość kolumnatożsamości.
Składnia
DBCC CHECKIDENT
(
table_name
[, { NORESEED | { RESEED [, new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]
Argumenty
table_name
Jest nazwą tabela , dla którego należy sprawdzić bieżącą wartość tożsamości.tabela określonej musi zawierać kolumna.Nazwy tabel muszą być zgodne z zasadami identyfikatorów.NORESEED
Określa, że wartość bieżąca tożsamość nie powinny być zmieniane.RESEED
Określa bieżącą wartość tożsamości powinny zostać zmienione.new_reseed_value
Jest nową wartość jako bieżącą wartość kolumnatożsamości.Z NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne.
Uwagi
Określonych poprawek wprowadzonych wartości bieżącej tożsamości zależy od specyfikacji parametru.
Polecenie DBCC CHECKIDENT |
Korekta tożsamości lub korekty dokonane |
---|---|
DBCC CHECKIDENT ( table_name, NORESEED) |
Bieżąca wartość tożsamości nie jest resetowany.DBCC CHECKIDENT zwraca wartość bieżącą tożsamość i bieżącą maksymalną wartość kolumnatożsamości.Jeśli dwie wartości nie są takie same, należy zresetować wartość tożsamości w celu uniknięcia potencjalnych błędów lub przerwy w sekwencji wartości. |
DBCC CHECKIDENT ( table_name ) lub DBCC CHECKIDENT ( table_name, RESEED) |
Jeżeli bieżąca wartość tożsamości w tabela jest mniejsza niż wartość maksymalna tożsamości, przechowywane w kolumnatożsamości, jest resetowany przy użyciu maksymalnej wartości w kolumnatożsamości.W sekcji Wyjątki poniżej. |
DBCC CHECKIDENT ( table_name, RESEED, new_reseed_value ) |
Bieżąca tożsamość wartość jest zestaw na new_reseed_value.Jeśli żadne wiersze zostały wstawione do tabela od czasu utworzenia tabela lub jeśli usunięto wszystkie wiersze przy użyciu OBCIĄĆ tabelę instrukcjaużywa pierwszego wiersza dodaje się po uruchomieniu DBCC CHECKIDENT new_reseed_value jako tożsamość.W przeciwnym razie używa następnego wiersza dodaje się new_reseed_value + przyrost bieżącego wartości. Jeśli tabela nie jest pusta, ustawienie wartości tożsamości liczbę mniejszą niż maksymalna wartość kolumna tożsamości może spowodować w jednym z następujących warunków:
|
Wyjątki
W poniższej tabela Wyświetla warunki, gdy DBCC CHECKIDENT nie automatycznie resetuje bieżącą wartość tożsamości i zawiera metody resetowania wartości.
Warunek |
Resetuj metod |
---|---|
Bieżąca wartość tożsamości jest większa niż maksymalna wartość w tabela. |
lub
|
Wszystkie wiersze są usuwane z tabela. |
Wykonanie DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) z new_reseed_valueUruchamianiezestaw żądane wartości. |
Zmiana wartości materiału siewnego
Wartość początkową jest wartość wstawiona do kolumna tożsamości dla pierwszego wiersza ładowane do tabela.Wszystkie pozostałe wiersze zawierają wartości bieżącej tożsamości powiększonej o wartość przyrostu, gdzie wartość bieżącą tożsamość jest ostatnia wartość tożsamości generowane dla tabela lub widoku.Aby uzyskać więcej informacji, zobacz Tworzenie i modyfikowanie kolumn identyfikatora.
DBCC CHECKIDENT nie można używać do wykonywania następujących zadań:
Zmień oryginalna wartość materiału siewnego, który został określony dla kolumna podczas tworzenia tabela lub widoku.
Reseed istniejących wierszy w tabela lub widoku.
Aby zmienić wartość oryginalnego materiału siewnego i reseed istniejące wiersze, musi usunąć tożsamości kolumna i ponowne utworzenie określając nową wartość materiału siewnego.W tabela zawierającej dane, numery tożsamości są dodawane do istniejących wierszy z określonego materiału siewnego i wartości przyrostu.Kolejność, w którym wiersze są aktualizowane nie jest gwarantowane.
Zestawy wyników
Czy opcje określone dla tabela , która zawiera tożsamości kolumna, zwraca DBCC CHECKIDENT (wartości mogą być różne):
Checking identity information: current identity value '290', current column value '290'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Uprawnienia
Obiekt wywołujący musi własnej tabelalub element członkowski sysadmin stała rola serwera db_owner stałej rola bazy danychlub db_ddladmin stałej rola bazy danych.
Przykłady
A.Resetowanie wartości bieżącej tożsamości, jeśli jest potrzebny
Poniższy przykład resetuje bieżącą wartość tożsamość, jeśli jest konieczne, z AddressType tabela w AdventureWorks2008R2 bazy danych.
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType");
GO
B.Raportowanie wartości bieżącej tożsamości
Poniższy przykład raportuje wartości bieżącej tożsamości w AddressType tabela w AdventureWorks2008R2 bazę danych, a nie poprawia wartość tożsamości, jeśli jest niepoprawny.
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType", NORESEED);
GO
C.Wymuszanie wartości bieżącej tożsamości na nową wartość
Poniższy przykład wymusza wartości bieżącej tożsamości w AddressTypeID kolumna w AddressType tabela wartość 10.Ponieważ tabela zawiera istniejące wiersze, następny wiersz wstawiony jako wartość, oznacza to, że wartość bieżąca tożsamość plus 1 bieżącą wartość przyrostu zdefiniowana dla kolumnazostanie użyty 11.
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType", RESEED, 10);
GO