sp_replcmds (Transact-SQL)

Retourne les commandes pour les transactions signalées pour la réplication. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.

Important

La procédure sp_replcmds ne doit être exécutée qu'en cas de problèmes de dépannage de la réplication.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_replcmds [ @maxtrans = ] maxtrans

Arguments

  • [ @maxtrans=] maxtrans
    Nombre de transactions au sujet desquelles des informations sont retournées. maxtrans est de type int, avec comme valeur par défaut 1, qui spécifie la prochaine transaction en attente de distribution.

Jeux de résultats

Nom de colonne

Type de données

Description

article id

int

Identificateur de l'article.

partial_command

bit

Indique s'il s'agit d'une commande partielle

command

varbinary(1024)

Valeur de la commande.

xactid

binary(10)

ID de transaction

xact_seqno

varbinary(16)

Numéro de séquence de transaction.

publication_id

int

ID de la publication.

command_id

int

ID de la commande dans MSrepl_commands.

command_type

int

Type de commande.

originator_srvname

sysname

Serveur d'origine de la transaction.

originator_db

sysname

Base de données d'origine de la transaction.

pkHash

int

À usage interne uniquement

originator_publication_id

int

ID de la publication d'origine de la transaction.

originator_db_version

int

Version de la base de données d'origine de la transaction.

originator_lsn

varbinary(16)

Identifie le numéro séquentiel dans le journal (LSN) de la commande dans la publication d'origine.

Notes

sp_replcmds est utilisé par le processus du lecteur de journal dans la réplication transactionnelle.

La réplication traite le premier client qui exécute sp_replcmds dans une base de données donnée en tant que lecteur de journal.

Cette procédure peut générer des commandes pour des tables propriétaires qualifiées, ou ne pas qualifier le nom de la table (valeur par défaut). L'ajout de noms de table qualifiés autorise la réplication des données à partir de tables appartenant à un utilisateur spécifique dans une base de données, vers des tables appartenant à ce même utilisateur dans une autre base de données.

[!REMARQUE]

Étant donné que le nom de table figurant dans la base de données source est qualifié par le nom du propriétaire, le propriétaire de la table dans la base de données cible doit porter le même nom de propriétaire.

Les clients qui tentent d'exécuter sp_replcmds dans la même base de données reçoivent le message d'erreur 18752 jusqu'à ce que le premier client se soit déconnecté. Une fois le premier client déconnecté, un autre client peut exécuter sp_replcmds et il devient à son tour le nouveau lecteur du journal.

Un message d'alerte numéro 18759 sera ajouté au journal des erreurs de MicrosoftSQL Server et au journal des applications Microsoft Windows si sp_replcmds ne parvient pas à répliquer une commande de type texte, car le pointeur de texte n'a pas été extrait au cours de la même transaction.

Autorisations

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter la procédure sp_replcmds.