sys.sp_publication_validation (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Initierar en valideringsbegäran för varje artikel i den angivna publikationen. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.

Transact-SQL syntaxkonventioner

Syntax

sys.sp_publication_validation
    [ @publication = ] N'publication'
    [ , [ @rowcount_only = ] rowcount_only ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Arguments

[ @publication = ] N'publicering'

Namnet på publikationen. @publication är sysname, utan standard.

[ @rowcount_only = ] rowcount_only

Specificerar om endast radantalet för tabellen ska returneras. @rowcount_only är smallint och kan vara ett av följande värden.

Value Description
0 Utför en SQL Server 7.0-kompatibel kontrollsumma.

Notera: När en artikel filtreras horisontellt utförs en radräkningsoperation istället för en kontrollsumma.
1 (standardinställning) Utför endast en radräkningskontroll.
2 Utför en radräkning och binär kontrollsumma.

[ @full_or_fast = ] full_or_fast

Metoden som används för att beräkna radräkningen. @full_or_fast är tinyint och kan vara ett av följande värden.

Value Description
0 Gör full räkning med .COUNT(*)
1 Räknas snabbt från sysindexes.rows. Att räkna rader i sys.sysindexes går snabbare än att räkna rader i den faktiska tabellen. Men eftersom sys.sysindexes uppdateras lat kan radräkningen vara felaktig.
2 (standardinställning) Gör villkorlig snabb räkning genom att först prova snabbmetoden. Om snabbmetoden visar skillnader, återgår den till full metod. Om expected_rowcount är och NULL den lagrade proceduren används för att få värdet, används alltid en full.COUNT(*)

[ @shutdown_agent = ] shutdown_agent

Specificerar om Distribution Agent ska stängas av omedelbart efter att valideringen är klar. @shutdown_agent är bit, med standardvärdet .0

  • Om 0, stängs inte replikationsagenten av.
  • Om 1, stängs replikationsagenten av efter att den sista artikeln har validerats.

[ @publisher = ] N'publisher'

Specificerar en icke-SQL Server Publisher. @publisher är sysname, med standardvärdet .NULL

@publisher bör inte användas när man begär validering på en SQL Server Publisher.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

sp_publication_validation används vid transaktionell replikation.

sp_publication_validation kan anropas när som helst efter att artiklarna kopplade till publikationen har aktiverats. Proceduren kan köras manuellt (en gång) eller som en del av ett regelbundet schemalagt jobb som validerar datan.

Om din applikation har omedelbart uppdaterade prenumeranter sp_publication_validation kan det upptäcka osäkra fel. sp_publication_validationförst beräknar raden eller kontrollsumman hos Publisher och sedan hos Subscriber. Eftersom triggern för omedelbar uppdatering kan sprida en uppdatering från Subscriber till Publisher efter att radräkningen eller kontrollsumman är klar hos Publisher, men innan radräkningen eller kontrollsumman är klar hos Subscriber, kan värdena ändras. För att säkerställa att värdena hos Subscriber och Publisher inte ändras vid validering av en publikation, stoppa Microsoft Distributed Transaction Coordinator (MS DTC)-tjänsten hos Publisher under valideringen.

Permissions

Endast medlemmar av sysadmin-rollen med fast server eller db_owner fast databasroll kan köra sp_publication_validation.