sp_replcmds (Transact-SQL)
Возвращает команды для транзакций, помеченных для репликации. Эта хранимая процедура выполняется на издателе в базе данных публикации.
Важно! |
---|
Процедуру sp_replcmds следует запускать только в целях диагностики ошибок репликации. |
Синтаксические обозначения в Transact-SQL
Синтаксис
sp_replcmds [ @maxtrans = ] maxtrans
Аргументы
- [ @maxtrans=] maxtrans
Число транзакций, сведения о которых необходимо возвратить. Аргумент maxtrans имеет тип int со значением по умолчанию 1, что указывает следующую транзакцию, ожидающую распространения.
Результирующие наборы
Имя столбца | Тип данных | Описание |
---|---|---|
article id |
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 может запускаться другим клиентом, который становится читателем журнала.
К журналу ошибок Microsoft SQL Server и журналу приложений Microsoft Windows добавляется предупреждающее сообщение 18759, если процедура sp_replcmds не может реплицировать текстовую команду из-за того, что текстовый указатель не был получен в той же самой транзакции.
Разрешения
Только члены фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner могут выполнять хранимую процедуру sp_replcmds.
См. также
Справочник
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)