Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Buď vrací informace o počtu řádků nebo kontrolním součtu v tabulce nebo indexovaném pohledu, nebo porovnává poskytnutý počet řádků nebo kontrolní součet s danou tabulkou nebo indexovaným zobrazením. Tato uložená procedura se provádí u Publisher v databázi publikací a u Subscriber v databázi předplatného.
Note
sp_table_validation není podporován u Oracle Publishers.
Syntax
sys.sp_table_validation
[ @table = ] N'table'
[ , [ @expected_rowcount = ] expected_rowcount OUTPUT ]
[ , [ @expected_checksum = ] expected_checksum OUTPUT ]
[ , [ @rowcount_only = ] rowcount_only ]
[ , [ @owner = ] N'owner' ]
[ , [ @full_or_fast = ] full_or_fast ]
[ , [ @shutdown_agent = ] shutdown_agent ]
[ , [ @table_name = ] N'table_name' ]
[ , [ @column_list = ] N'column_list' ]
[ ; ]
Arguments
[ @table = ] N'table'
Název tabulky. @table je sysname, bez výchozího nastavení.
[ @expected_rowcount = ] expected_rowcount VÝSTUP
Specifikuje, zda má vrátit očekávaný počet řádků v tabulce.
@expected_rowcount je int, s výchozím nastavením NULL. Pokud NULL, skutečný počet řádků se vrací jako výstupní parametr. Pokud je hodnota uvedena, tato hodnota se porovná s skutečným počtem řádků, aby se zjistily případné rozdíly.
[ @expected_checksum = ] expected_checksum VÝSTUP
Specifikuje, zda má vrátit očekávaný kontrolní součet pro tabulku.
@expected_checksumje číselná, s výchozím hodnotou NULL. Pokud NULL, skutečný kontrolní součet se vrací jako výstupní parametr. Pokud je zadána hodnota, tato hodnota se oproti skutečnému kontrolnímu součtu, aby se identifikovaly případné rozdíly.
[ @rowcount_only = ] rowcount_only
Specifikuje, jaký typ kontrolního součtu nebo řádku má být proveden.
@rowcount_only je smallint, s výchozím nastavením 1.
Pokud 0, proveďte počet řádků a kontrolní součet kompatibilní se SQL Server 7.0.
Pokud 1, proveďte pouze kontrolu počtu řádků.
Pokud 2, provedete počet řádků a binární kontrolní součet.
[ @owner = ] N'majitel'
Jméno majitele stolu.
@owner je sysname s výchozím nastavením NULL.
[ @full_or_fast = ] full_or_fast
Metoda použitá k výpočtu počtu řádků.
@full_or_fast je tinyint, s výchozím hodnotou 2, a může být jednou z těchto hodnot.
| Value | Description |
|---|---|
0 |
Počítá se celý s použitím COUNT(*). |
1 |
Počítá rychle z sysindexes.rows. Počítání řádků v sysindexes tabulce je mnohem rychlejší než počítání řádků v samotné tabulce. Nicméně, protože sysindexes je pořádně aktualizován, nemusí být počet řádků přesný. |
2 (výchozí) |
Provádí podmíněné rychlé počítání tím, že nejprve vyzkouší rychlou metodu. Pokud rychlá metoda ukáže rozdíly, vrací se k plné metodě. Pokud je @expected_rowcount a NULL uložená procedura je použita k získání hodnoty, vždy se použije plná COUNT(*) hodnota. |
[ @shutdown_agent = ] shutdown_agent
Pokud Distribution Agent vykonává sp_table_validation, specifikuje, zda by se měl Distribution Agent ihned po dokončení validace vypnout.
@shutdown_agent je bit, s výchozím hodnotou 0. Pokud 0, replikační agent se nevypne. Pokud 1je vyvolána chyba 20578 a replikační agent je signalizován k vypnutí. Tento parametr je ignorován, pokud sp_table_validation jej uživatel vykoná přímo.
[ @table_name = ] 'Ntable_name'
Tabulka názvu pohledu používaného pro výstupní zprávy. @table_name je sysname s výchozím @table.
[ @column_list = ] N'column_list'
Seznam sloupců, které by měly být použity ve funkci kontrolního součtu.
@column_list je nvarchar(4000), s výchozím hodnotou NULL. Umožňuje ověřování článků při sloučení specifikovat seznam sloupců, který vylučuje vypočítáné a časové sloupce.
Hodnoty návratového kódu
Pokud provedete validaci kontrolního součtu a očekávaný součet se rovná kontrolnímu součtu v tabulce, vrátí zprávu, sp_table_validation že tabulka prošla validací kontrolního součtu. Jinak vrací zprávu, že tabulka může být mimo synchronizaci, a hlásí rozdíl mezi očekávaným a skutečným počtem řádků.
Pokud validace počtu řádků a očekávaný počet řádků se rovná počtu v tabulce, vrátí zprávu, sp_table_validation že tabulka prošla validací počtu řádků. Jinak vrací zprávu, že tabulka může být mimo synchronizaci, a hlásí rozdíl mezi očekávaným a skutečným počtem řádků.
Remarks
sp_table_validation se používá ve všech typech replikace.
sp_table_validation není podporován u Oracle Publishers.
Checksum počítá 32bitovou cyklickou redundanci (CRC) na celém řádkovém obrázku na stránce. Nekontroluje sloupce selektivně a nemůže pracovat s pohledem nebo vertikálním rozdělením tabulky. Kontrolní součet také přeskakuje obsah textových a obrazových sloupců (záměrně).
Při provádění kontrolního součtu musí být struktura tabulky identická mezi oběma servery; to znamená, že tabulky musí mít stejné sloupce ve stejném pořadí, stejné datové typy a délky a stejné NULL/NOT NULL podmínky. Například pokud Publisher použil , CREATE TABLEpak ALTER TABLE a pro přidání sloupců, ale skript aplikovaný na Subscriber je jednoduchá CREATE tabulka, struktura není stejná. Pokud si nejste jistí, že struktura obou tabulek je identická, podívejte se na sys.syscolumns a ověřte, že offset v každé tabulce je stejný.
Hodnoty s plovoucí desetinnou čárkou pravděpodobně generují rozdíly v kontrolních součtech, pokud byl použit bcp v režimu znaků, což je případ, pokud publikace nemá předplatitele mimo SQL Server. Jsou to drobné a nevyhnutelné rozdíly v přesnosti při převodu do a z režimu postavy.
Permissions
Pro spuštění sp_table_validationmusíte mít v ověřované tabulce oprávnění SELECT.