Udostępnij za pośrednictwem


sp_table_validation (języka Transact-SQL)

Zwraca informacje rowcount lub suma kontrolna w tabela lub widok indeksowany lub porównuje pod warunkiem, że rowcount lub suma kontrolna informacje z określonej tabela lub widok indeksowany.Ta procedura przechowywana jest wykonywany przez wydawcę do bazy danych, publikacja i subskrybent baza danych subskrypcja.Nie jest obsługiwana dla Oracle wydawcy.

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

sp_table_validation [ @table = ] 'table'
    [ , [ @expected_rowcount = ] type_of_check_requested OUTPUT]
    [ , [ @expected_checksum = ] expected_checksum OUTPUT]
    [ , [ @rowcount_only = ] rowcount_only ]
    [ , [ @owner = ] 'owner' ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @table_name = ] table_name ]
    [ , [ @column_list = ] 'column_list' ]

Argumenty

  • [ @table=] 'table'
    Is the name of the table.table is sysname, with no default.

  • [ @expected_rowcount=] expected_rowcountOUTPUT
    Specifies whether to return the expected number of rows in the table.expected_rowcount is int, with a default of NULL.Jeśli wartością tą jest NULL, rzeczywiste rowcount są zwracane jako parametru wyjściowego.Jeśli wartość jest podana, ta wartość jest sprawdzany na podstawie rzeczywistej rowcount w celu zidentyfikowania różnic.

  • [ @expected_checksum=] expected_checksumOUTPUT
    Specifies whether to return the expected checksum for the table.expected_checksum is numeric, with a default of NULL.Jeśli wartością tą jest NULL, rzeczywista suma kontrolna jest zwracany jako parametru wyjściowego.Jeśli wartość jest podana, ta wartość jest sprawdzany na podstawie rzeczywistej suma kontrolna zidentyfikować wszelkie różnice.

  • [ @rowcount_only=] type_of_check_requested
    Specifies what type of checksum or rowcount to perform.type_of_check_requested is smallint, with a default of 1.

    If 0, perform a rowcount and a Microsoft SQL Server 7.0-compatible checksum.

    Jeśli 1, sprawdzać rowcount tylko.

    Jeśli 2, wykonywać suma kontrolna rowcount i binarny.

  • [ @owner=] 'owner'
    Is the name of the owner of the table.owner is sysname, with a default of NULL.

  • [ @full_or_fast=] full_or_fast
    Is the method used to calculate the rowcount.full_or_fast is tinyint, with a default of 2, and can be one of these values.

    Wartość

    Description

    0

    Pełna liczba za pomocą Count(*).

    1

    Szybkie zliczania z sysindexes.Rows.Liczenie wierszy sysindexes przebiega szybciej, niż liczenie wierszy w tabela rzeczywiste.Jednak ponieważ sysindexes lazily jest aktualizowana, the rowcount mogą być niedokładne.

    2 (domyślnie)

    Nie, warunkowe szybkie zliczania przy pierwszej próbie szybka metoda.Jeśli metoda szybkiego pokazano różnice, zostanie przywrócona pełna metody.Jeśli expected_rowcount ma wartość NULL i procedura przechowywana jest używana ma być pobrana wartość, pełne Count(*) jest zawsze używany.

  • [ @shutdown_agent=] shutdown_agent
    If the Distribution Agent is executing sp_table_validation, specifies whether the Distribution Agent should shut down immediately upon completion of the validation.shutdown_agent is bit, with a default of 0.Jeśli 0, agent replikacja nie zamknięcia niedziałający.Jeśli 1, błąd 20578 zostanie zaokrąglona i agent replikacja jest sygnalizowane do zamknięcia.Ten parametr jest ignorowany podczas sp_table_validation jest wykonywane bezpośrednio przez użytkownika.

  • [ @table_name =] table_name
    Is the table name of the view used for output messages.table_name is sysname, with a default of @table.

  • [ @ column_list= ] **"**column_list "
    Is the list of columns that should be used in the checksum function.column_list is nvarchar(4000), with a default of NULL.Umożliwia sprawdzenie poprawności artykułów korespondencji seryjnej, aby określić kolumna listy, która nie obejmuje obliczone i kolumna sygnatury czasowej.

Wartości kodów powrotnych

Jeśli przy sprawdzaniu poprawności suma kontrolna i Oczekiwana suma jest równa suma kontrolna w tabela sp_table_validation zwraca komunikat, że w tabela przekazano sprawdzania sum kontrolnych.W przeciwnym wypadku zwraca komunikat, że w tabela może być zsynchronizowane i zgłasza różnica oczekiwaną i rzeczywista liczba wierszy.

Jeśli przy sprawdzaniu poprawności rowcount i oczekiwana liczba wierszy równa liczbie w tabela sp_table_validation zwraca komunikat, że w tabela przekazano rowcount sprawdzania poprawności.W przeciwnym wypadku zwraca komunikat, że w tabela może być zsynchronizowane i zgłasza różnica oczekiwaną i rzeczywista liczba wierszy.

Remarks

sp_table_validation is used in all types of replication.sp_table_validation is not supported for Oracle Publishers.

Suma kontrolna oblicza sprawdzenie 32-bitowe cyklicznej kontroli redundancji (CRC) na obrazie całego wiersza strona.Nie sprawdza selektywnie kolumn i nie może działać z widokiem lub pionowy partycji tabela.Ponadto tej suma kontrolna pomija zawartość tekst and obraz kolumny (zgodnie z projektem).

Podczas wykonywania suma kontrolna, muszą być takie same dwa serwery strukturę tabela, oznacza to, tabele muszą mieć takie same kolumn istniejących w tej samej kolejności, ten sam typ danych i długości i tych samych warunkach /NOT NULL.Na przykład jeśli Wydawca została CREATE tabela, następnie instrukcji ALTER tabela, aby dodać kolumny, ale zastosowany przez subskrybent skrypt jest prostą tabela CREATE, struktura nie jest taka sama.Jeśli nie masz pewność, że struktury tabel jest identyczna, oglądanie syscolumns i upewnij się, że przesunięcie w każdej tabela jest taka sama.

Wartości mogą mieć do generowania sum kontrolnych różnice, jeśli tryb znakowy zmiennoprzecinkowych BCP był używany, co ma miejsce przypadek, jeśli w publikacja znajdują się inne niż-SQL Server subskrybentów. Są to ze względu na różnice pomocnicze i nieuniknione precyzji podczas wykonywania konwersji do i z trybu znaków.

Uprawnienia

Do wykonać sp_table_validation, trzeba mieć uprawnienia SELECT na tabela, w trakcie sprawdzania poprawności.