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)