Dela via


sp_replcmds (Transact-SQL)

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

Returnerar kommandona för transaktioner som har markerats för replikering. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.

Viktig

Den sp_replcmds proceduren ska endast köras för att felsöka problem med replikering.

Transact-SQL syntaxkonventioner

Syntax

sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]

Argument

Viktig

Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.

[ @maxtrans = ] maxtrans

Antalet transaktioner att returnera information om. @maxtrans är int, med standardvärdet 1, som anger nästa transaktion som väntar på distribution.

Resultatuppsättning

Kolumnnamn Datatyp Beskrivning
article id int Artikelns ID.
partial_command bit Anger om det här kommandot är ett partiellt kommando.
command varbinary(1024) Kommandovärdet.
xactid binär(10) Transaktions-ID.
xact_seqno varbinary(16) Transaktionssekvensnumret.
publication_id int Publikationens ID.
command_id int ID för kommandot i MSrepl_commands.
command_type int Typ av kommando.
originator_srvname sysname Server där transaktionen har sitt ursprung.
originator_db sysname Databas där transaktionen har sitt ursprung.
pkHash int Endast intern användning.
originator_publication_id int ID för publikationen där transaktionen uppstod.
originator_db_version int Version av databasen där transaktionen kom från.
originator_lsn varbinary(16) Identifierar loggsekvensnumret (LSN) för kommandot i den ursprungliga publikationen.

Anmärkningar

sp_replcmds används av loggläsarprocessen i transaktionsreplikering.

Replikering behandlar den första klienten som kör sp_replcmds i en viss databas som loggläsare.

Den här proceduren kan generera kommandon för ägarkvalificerade tabeller eller inte kvalificera tabellnamnet (standard). Genom att lägga till kvalificerade tabellnamn kan du replikera data från tabeller som ägs av en specifik användare i en databas till tabeller som ägs av samma användare i en annan databas.

Eftersom tabellnamnet i källdatabasen är kvalificerat efter ägarnamnet måste tabellens ägare i måldatabasen vara samma ägarnamn.

Klienter som försöker köra sp_replcmds i samma databas får fel 18752 tills den första klienten kopplas från. När den första klienten har kopplats från kan en annan klient köra sp_replcmdsoch blir den nya loggläsaren.

Ett varningsmeddelandenummer 18759 läggs till i både SQL Server-felloggen och Microsoft Windows-programloggen, om sp_replcmds inte kan replikera ett textkommando eftersom textpekaren inte hämtades i samma transaktion.

Behörigheter

Endast medlemmar i sysadmin fast serverroll eller db_owner fast databasroll kan köra sp_replcmds.