DBCC CHECKIDENT (Transact-SQL)

Sprawdza, czy bieżąca wartość tożsamości dla określonej tabela i, jeśli jest potrzebny, zmienia wartość tożsamości.Można również użyć CHECKIDENT DBCC do ręcznego zestaw nową wartość bieżącą tożsamość kolumna tożsamości.

Topic link iconKonwencje składni języka Transact-SQL

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.Określona tabela musi zawierać kolumna tożsamości.tabela nazwy muszą być zgodne z zasadami identyfikatory.

  • NORESEED
    Określa, że bieżąca wartość tożsamości nie powinny być zmieniane.

  • RESEED
    Określa bieżącą wartość tożsamości powinny być zmieniane.

  • new_reseed_value
    Jest to nowy wartość jako bieżącą wartość kolumna tożsamości.

  • Z NO_INFOMSGS
    Pomija wszystkie komunikaty informacyjne.

Remarks

Określonych poprawek do bieżącej wartości tożsamość zależy od specyfikacji parametru.

Polecenie DBCC CHECKIDENT

Korekta tożsamości lub dokonać korekty

DBCC CHECKIDENT) table_nameNORESEED)

Bieżąca wartość tożsamości nie jest resetowany.DBCC CHECKIDENT zwraca wartość bieżącą tożsamość i bieżącą maksymalną wartość kolumna tożsamości.Te dwie wartości nie są takie same, powinien zresetowanie wartości tożsamości, aby uniknąć potencjalnych błędów lub przerwy w sekwencji wartości.

DBCC CHECKIDENT) table_name )

lub

DBCC CHECKIDENT) table_nameRESEED)

Jeżeli bieżąca wartość tożsamości w tabela jest mniejsza niż wartość maksymalna tożsamości, przechowywane w kolumna tożsamości, zostanie zresetowane przy użyciu maksymalnej wartości w kolumna tożsamości.

DBCC CHECKIDENT) table_nameRESEED, new_reseed_value )

Bieżąca wartość tożsamości jest zestaw do new_reseed_value. Jeśli wiersze nie zostały wstawione do tabela od czasu utworzenia tabela lub jeśli wszystkie wiersze zostały usunięte za pomocą instrukcja OBCINANIA tabela, pierwszy wiersz wstawiony po uruchomieniu CHECKIDENT DBCC używa new_reseed_value jako tożsamość. W przeciwnym razie używa następnego wiersza wstawić new_reseed_value + Bieżąca wartość przyrostu. wartość.

Jeśli tabela nie jest puste, ustawienie wartości tożsamości na liczbę mniejszą niż wartość maksymalna w kolumna tożsamości może doprowadzić do jednego z następujących warunków:

  • Jeśli ograniczenia klucz podstawowy lub UNIQUE znajduje się na kolumna tożsamości, komunikat o błędzie 2627 zostanie wygenerowany później operacji wstawiania do tabela, ponieważ wartości generowanej tożsamości będą w konflikcie z istniejących wartości.

  • Jeśli ograniczenia klucz podstawowy lub UNIQUE, nie istnieje, później operacji wstawiania spowoduje tożsamości zduplikowane wartości.

Wyjątki

Poniższa lista zawiera warunki CHECKIDENT DBCC automatycznie nie resetuje bieżącą wartość tożsamości i zawiera metody resetowania wartości.

Warunek

Resetowanie metod

Bieżąca wartość tożsamości jest większa niż maksymalna wartość w tabela.

  • wykonać CHECKIDENT DBCC)table_nameNORESEED) do ustalenia bieżącej maksymalną wartość kolumna, a następnie określ tę wartość jako new_reseed_value w (CHECKIDENT DBCCtable_nameRESEED, new_reseed_value) polecenia.

lub

  • wykonać CHECKIDENT DBCC)table_nameRESEED, new_reseed_value) z new_reseed_value zestaw do bardzo niska wartość, a następnie uruchom CHECKIDENT DBCC ()table_nameRESEED) aby skorygować wartości.

Wszystkie wiersze są usuwane z tabela.

wykonać CHECKIDENT DBCC)table_nameRESEED, new_reseed_value) z new_reseed_value Ustaw na odpowiednią wartość początkową.

Zmieniając wartość początkową

Wartość początkową wartość wstawiona kolumna tożsamości dla bardzo pierwszego wiersza, które są ładowane do tabela.Wszystkie pozostałe wiersze zawierają wartości bieżącej tożsamości, plus wartość przyrostu, jeżeli bieżąca wartość tożsamości jest ostatnia wartość tożsamości generowane dla tabela lub widoku.Aby uzyskać więcej informacji zobaczTworzenie i modyfikowanie identyfikator kolumny.

DBCC CHECKIDENT nie można używać do wykonywania następujących zadań:

  • Zmienić oryginalną wartość początkową, która została określona dla kolumna tożsamości podczas tworzenia tabela lub widoku.

  • Reseed istniejących wierszy w tabela lub widoku.

Aby zmienić oryginalną wartość początkową i reseed wszystkie istniejące wiersze, usunąć kolumna tożsamości i odtworzyć ją określając nową wartość początkową.Jeśli tabela zawiera dane, numery tożsamości są dodawane do istniejących wierszy z określonego siewnego i wartości przyrostu.Kolejność, w którym wiersze są aktualizowane nie jest gwarantowane.

Zestawy wyników

Niezależnie od tego, czy opcje określone dla tabela zawierającej kolumna tożsamości, zwraca CHECKIDENT DBCC (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 tabela lub być członkiem sysadmin ustala rolę serwera db_owner stałe rola bazy danych, lub db_ddladmin stała 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ści, jeśli jest potrzebny, z Employee Tabela w AdventureWorks Baza danych.

B.Raportowanie wartości bieżącej tożsamości

W poniższym przykładzie raporty bieżącej wartości tożsamości Employee Tabela w AdventureWorks bazy danych, a nie poprawia wartość tożsamości, jeśli jest on niepoprawny.

C.Wymuszanie na nową wartość bieżącą wartość tożsamości

W poniższym przykładzie wymusza bieżącej wartości tożsamości EmployeeID kolumna w Employee Tabela wartości 300. Ponieważ tabela ma istniejące wiersze, następny wiersz wstawiony jako wartość, czyli bieżącą wartość tożsamości plus 1, bieżącą wartość przyrostu zdefiniowana dla kolumna zostanie użyty 301.