sp_replcmds (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed Instance

Devuelve los comandos de las transacciones marcadas para replicación. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.

Importante

El procedimiento sp_replcmds solo debe ejecutarse para solucionar problemas con la replicación.

Convenciones de sintaxis de Transact-SQL

Sintaxis

  
sp_replcmds [ @maxtrans = ] maxtrans  

Argumentos

[ @maxtrans = ] maxtrans Es el número de transacciones de las que se va a devolver información. maxtrans es int, con un valor predeterminado de 1, que especifica la siguiente transacción en espera de distribución.

Conjuntos de resultados

Nombre de la columna Tipo de datos Descripción
id. de artículo int Id. del artículo.
partial_command bit Indica si se trata de un comando parcial o no.
comando varbinary(1024) El valor del comando.
xactid binary(10) Id. de la transacción.
xact_seqno varbinary(16) Número de secuencia de transacción.
publication_id int Id. de la publicación.
command_id int Identificador del comando en MSrepl_commands.
command_type int Tipo de comando.
originator_srvname sysname Servidor en el que se originó la transacción.
originator_db sysname Base de datos en la que se originó la transacción.
pkHash int Solo para uso interno.
originator_publication_id int Id. de la publicación en la que se originó la transacción.
originator_db_version int Versión de la base de datos en la que se originó la transacción.
originator_lsn varbinary(16) Identifica el número de flujo de registro (LSN) para el comando de la publicación en la que se origina.

Comentarios

sp_replcmds usa el proceso de lector de registros en la replicación transaccional.

La replicación trata el primer cliente que ejecuta sp_replcmds dentro de una base de datos determinada como lector de registros.

Este procedimiento puede generar comandos para tablas calificadas por el propietario o no calificar el nombre de la tabla (valor predeterminado). Agregar nombres de tabla calificados permite replicar datos de tablas que pertenecen a un usuario específico de una base de datos a tablas que pertenecen al mismo usuario en otra base de datos.

Nota:

Debido a que el nombre de tabla en la base de datos de origen está calificado mediante el nombre del propietario, el propietario de la tabla en la base de datos de destino deberá tener ese mismo nombre.

Los clientes que intentan ejecutar sp_replcmds dentro de la misma base de datos reciben el error 18752 hasta que el primer cliente se desconecta. Después de que el primer cliente se desconecte, otro cliente puede ejecutar sp_replcmds y se convierte en el nuevo lector de registros.

Se agrega un número de mensaje de advertencia 18759 al registro de errores de Microsoft SQL Server y al registro de aplicaciones de Microsoft Windows si sp_replcmds no puede replicar un comando de texto porque el puntero de texto no se recuperó en la misma transacción.

Permisos

Solo los miembros del rol fijo de servidor sysadmin o el rol fijo de base de datos db_owner pueden ejecutar sp_replcmds.

Consulte también

Mensajes de error
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)