Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Initieert een artikelvalidatieverzoek voor elk artikel in de gespecificeerde publicatie. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.
Transact-SQL syntaxis-conventies
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'publicatie'
De naam van de publicatie. @publication is sysname, zonder standaard.
[ @rowcount_only = ] rowcount_only
Geeft aan of alleen het aantal rijen voor de tabel moet worden teruggegeven. @rowcount_only is smallint, en kan een van de volgende waarden zijn.
| Value | Beschrijving |
|---|---|
0 |
Voer een SQL Server 7.0-compatibele checksum uit. Opmerking: Wanneer een artikel horizontaal wordt gefilterd, wordt een rijtellingoperatie uitgevoerd in plaats van een checksumoperatie. |
1 (standaard) |
Voer alleen een rijentelling uit. |
2 |
Voer een rijtelling en binaire checksum uit. |
[ @full_or_fast = ] full_or_fast
De methode die wordt gebruikt om het aantal rijen te berekenen. @full_or_fast is tinyint en kan een van de volgende waarden zijn.
| Value | Beschrijving |
|---|---|
0 |
Doet volledige telling met .COUNT(*) |
1 |
Telt Fast mee vanaf sysindexes.rows. Het tellen van rijen in sys.sysindexes is sneller dan het tellen van rijen in de daadwerkelijke tabel. Omdat sys.sysindexes echter lui wordt bijgewerkt, kan het aantal rijen niet nauwkeurig zijn. |
2 (standaard) |
Doe voorwaardelijk snel tellen door eerst de snelle methode te proberen. Als de snelle methode verschillen vertoont, schakelt hij terug naar de volledige methode. Als expected_rowcount dat wel zo is NULL en de opgeslagen procedure wordt gebruikt om de waarde te verkrijgen, wordt altijd een volledige COUNT(*) procedure gebruikt. |
[ @shutdown_agent = ] shutdown_agent
Specificeert of de Distribution Agent onmiddellijk na voltooiing van de validatie moet worden uitgeschakeld.
@shutdown_agent is bit, met als standaard .0
- Als
0, schakelt de replicatieagent niet uit. - Als
1, schakelt het replicatiemiddel uit nadat het laatste artikel is gevalideerd.
[ @publisher = ] N'uitgever'
Specificeert een niet-SQL Server Publisher.
@publisher is sysname, met als standaard NULL.
@publisher mag niet worden gebruikt bij het aanvragen van validatie op een SQL Server Publisher.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Remarks
sp_publication_validation wordt gebruikt bij transactionele replicatie.
sp_publication_validation kan op elk moment worden opgeroepen nadat de artikelen die aan de publicatie horen zijn geactiveerd. De procedure kan handmatig worden uitgevoerd (één keer) of als onderdeel van een regelmatig geplande taak die de data valideert.
Als je applicatie abonnees direct updaten, sp_publication_validation kan het onjuiste fouten worden opgemerkt.
sp_publication_validationeerst berekent hij het aantal rijen of de checksum bij de Publisher en vervolgens bij de Subscriber. Omdat de directe-update-trigger een update van de Subscriber naar de Publisher kan verspreiden nadat de rijtelling of checksum bij de Publisher is voltooid, maar voordat de rowcount of checksum bij de Subscriber is voltooid, kunnen de waarden veranderen. Om ervoor te zorgen dat de waarden bij de Subscriber en Publisher niet veranderen tijdens het valideren van een publicatie, stop je de Microsoft Distributed Transaction Coordinator (MS DTC)-service bij de Publisher tijdens de validatie.
Permissions
Alleen leden van de sysadmin-vaste serverrol of de db_owner vaste databaserol kunnen uitvoeren sp_publication_validation.