Sdílet prostřednictvím


sp_replcmds (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Vrátí příkazy pro transakce označené pro replikaci. Tato uložená procedura se spustí v Publisheru v databázi publikace.

Důležitý

Postup sp_replcmds by se měl spustit jenom pro řešení potíží s replikací.

Transact-SQL konvence syntaxe

Syntax

sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]

Argumenty

Důležitý

Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.

[ @maxtrans = ] maxtrans

Počet transakcí, o které se mají vrátit informace. @maxtrans je int, s výchozí hodnotou 1, která určuje další transakci čekající na distribuci.

Sada výsledků

Název sloupce Datový typ Popis
article id int ID článku.
partial_command bitová Určuje, jestli je tento příkaz částečným příkazem.
command varbinary(1024) Hodnota příkazu.
xactid binární(10) ID transakce.
xact_seqno varbinary(16) Pořadové číslo transakce.
publication_id int ID publikace.
command_id int ID příkazu v MSrepl_commands.
command_type int Typ příkazu
originator_srvname sysname Server, kde transakce pochází.
originator_db sysname Databáze, kde transakce pochází.
pkHash int Pouze interní použití.
originator_publication_id int ID publikace, kde transakce pochází.
originator_db_version int Verze databáze, kde transakce pochází.
originator_lsn varbinary(16) Identifikuje pořadové číslo protokolu (LSN) pro příkaz v původní publikaci.

Poznámky

sp_replcmds používá proces čtečky protokolů v transakční replikaci.

Replikace zachází s prvním klientem, který běží sp_replcmds v dané databázi jako se čtečkou protokolů.

Tento postup může generovat příkazy pro tabulky kvalifikované vlastníkem nebo nekvalifikovat název tabulky (výchozí). Přidání kvalifikovaných názvů tabulek umožňuje replikaci dat z tabulek vlastněných konkrétním uživatelem v jedné databázi do tabulek vlastněných stejným uživatelem v jiné databázi.

Protože název tabulky ve zdrojové databázi je kvalifikovaný podle názvu vlastníka, vlastník tabulky v cílové databázi musí být stejný název vlastníka.

Klienti, kteří se pokusí spustit sp_replcmds ve stejné databázi, se zobrazí chyba 18752, dokud se první klient neodpojí. Po odpojení prvního klienta může jiný klient spustit sp_replcmdsa stane se novou čtečkou protokolu.

Do protokolu chyb SYSTÉMU SQL Server i do protokolu aplikací systému Microsoft Windows se přidá zpráva s upozorněním číslo 18759, pokud sp_replcmds nemůže replikovat textový příkaz, protože textový ukazatel nebyl načten ve stejné transakci.

Dovolení

sp_replcmdsmohou provádět pouze členové pevné role serveru správce systému nebo db_owner pevné databázové role .