sp_replcmds (Transact-SQL)

Применимо к:SQL Server Управляемый экземпляр SQL Azure

Возвращает команды для транзакций, помеченных для репликации. Эта хранимая процедура выполняется на издателе в базе данных публикации.

Важно!

Процедура sp_replcmds должна выполняться только для устранения проблем с реплика.

Соглашения о синтаксисе Transact-SQL

Синтаксис

  
sp_replcmds [ @maxtrans = ] maxtrans  

Аргументы

[ @maxtrans = ] maxtrans Количество транзакций для возврата сведений. maxtrans имеет значение int с значением по умолчанию 1, которое указывает следующую транзакцию, ожидающую распространения.

Результирующие наборы

Имя столбца Тип данных Description
Идентификатор статьи int Идентификатор статьи.
partial_command bit Показывает, частичная эта команда или нет.
command varbinary(1024) Значение команды.
xactid binary(10) Идентификатор транзакции.
xact_seqno varbinary(16) Номер последовательности транзакции.
publication_id int Идентификатор публикации.
command_id int Идентификатор команды в MSrepl_commands.
command_type int Тип команды.
originator_srvname sysname Сервер, на котором была начата транзакция.
originator_db sysname База данных, в которой была начата транзакция.
pkHash int Только для внутреннего применения.
originator_publication_id int Идентификатор публикации, в которой началась транзакция.
originator_db_version int Версия базы данных, в которой началась транзакция.
originator_lsn varbinary(16) Указывает регистрационный номер транзакции в журнале (номер LSN) для команды в порождающей публикации.

Замечания

sp_replcmds используется процессом чтения журналов в транзакционных реплика.

Репликация обрабатывает первый клиент, который запускает sp_replcmds в данной базе данных как средство чтения журналов.

Эта процедура может формировать команды для таблиц с заданным владельцем или не квалифицировать имя таблицы (по умолчанию). Дополнение квалификатора в виде имени таблицы позволяет реплицировать данные из таблиц, принадлежащих конкретному пользователю, в таблицы, принадлежащие этому же пользователю, но находящиеся в другой базе данных.

Примечание.

Поскольку имя таблицы в базе данных-источнике квалифицируется именем владельца, владелец таблицы в базе данных назначения должен иметь то же самое имя.

Клиенты, которые пытаются запустить sp_replcmds в той же базе данных, получают ошибку 18752 до отключения первого клиента. После отключения первого клиента другой клиент может запустить sp_replcmds и становится новым средством чтения журналов.

Предупреждающее сообщение 18759 добавляется как в журнал ошибок Microsoft SQL Server, так и в журнал приложений Microsoft Windows, если sp_replcmds не удается реплика выполнить текстовую команду, так как текстовый указатель не был получен в одной транзакции.

Разрешения

Только члены предопределенных ролей сервера sysadmin или предопределенных ролей базы данных db_owner могут выполняться sp_replcmds.

См. также

Сообщения об ошибках
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)