Udostępnij za pośrednictwem


sp_replcmds (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL Managed Instance

Zwraca polecenia dla transakcji oznaczonych do replikacji. Ta procedura składowana jest wykonywana w programie Publisher w bazie danych publikacji.

Ważny

Procedura sp_replcmds powinna być uruchamiana tylko w celu rozwiązywania problemów z replikacją.

Transact-SQL konwencje składni

Składnia

sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]

Argumenty

Ważny

Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.

[ @maxtrans = ] maxtrans

Liczba transakcji do zwrócenia informacji o. @maxtrans jest int z wartością domyślną 1, która określa kolejną transakcję oczekującą na dystrybucję.

Zestaw wyników

Nazwa kolumny Typ danych Opis
article id Identyfikator artykułu.
partial_command bitów Wskazuje, czy to polecenie jest poleceniem częściowym.
command varbinary(1024) Wartość polecenia.
xactid binarnych (10) Identyfikator transakcji.
xact_seqno varbinary(16) Numer sekwencji transakcji.
publication_id Identyfikator publikacji.
command_id Identyfikator polecenia w MSrepl_commands.
command_type Typ polecenia.
originator_srvname nazwa systemu Serwer, na którym pochodzi transakcja.
originator_db nazwa systemu Baza danych, z której pochodzi transakcja.
pkHash Tylko do użytku wewnętrznego.
originator_publication_id Identyfikator publikacji, z której pochodzi transakcja.
originator_db_version Wersja bazy danych, z której pochodzi transakcja.
originator_lsn varbinary(16) Identyfikuje numer sekwencji dziennika (LSN) dla polecenia w publikacji źródłowej.

Uwagi

sp_replcmds jest używany przez proces czytnika dzienników w replikacji transakcyjnej.

Replikacja traktuje pierwszego klienta, który uruchamia sp_replcmds w ramach danej bazy danych jako czytnik dzienników.

Ta procedura może generować polecenia dla tabel kwalifikowanych przez właściciela lub nie kwalifikować nazwy tabeli (wartość domyślna). Dodanie kwalifikowanych nazw tabel umożliwia replikację danych z tabel należących do określonego użytkownika w jednej bazie danych do tabel należących do tego samego użytkownika w innej bazie danych.

Ponieważ nazwa tabeli w źródłowej bazie danych jest kwalifikowana przez nazwę właściciela, właściciel tabeli w docelowej bazie danych musi być tą samą nazwą właściciela.

Klienci, którzy próbują uruchomić sp_replcmds w tej samej bazie danych, otrzymują błąd 18752 do momentu rozłączenia pierwszego klienta. Po rozłączeniu pierwszego klienta inny klient może uruchomić sp_replcmdsi staje się nowym czytnikiem dzienników.

Komunikat ostrzegawczy o numerze 18759 jest dodawany zarówno do dziennika błędów programu SQL Server, jak i dziennika aplikacji systemu Microsoft Windows, jeśli sp_replcmds nie może replikować polecenia tekstowego, ponieważ wskaźnik tekstu nie został pobrany w tej samej transakcji.

Uprawnienia

Tylko członkowie sysadmin stałej roli serwera lub stałej roli db_owner bazy danych mogą wykonywać sp_replcmds.