sp_replcmds (Transact-SQL)
S’applique à : SQL Server Azure SQL Managed Instance
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 sp_replcmds
procédure doit être exécutée uniquement pour résoudre les problèmes de réplication.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]
Arguments
[ @maxtrans = ] maxtrans
Nombre de transactions à propos de laquelle retourner des informations. @maxtrans est int, avec une valeur par défaut 1
, qui spécifie la transaction suivante en attente de distribution.
Jeu de résultats
Nom de la colonne | Type de données | Description |
---|---|---|
article id |
int | ID de l’article. |
partial_command |
bit | Indique si cette commande est une commande partielle. |
command |
varbinary(1024) | La valeur de 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 | Utilisation 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 de lecture du journal dans la réplication transactionnelle.
La réplication traite le premier client qui s’exécute sp_replcmds
dans une base de données donnée comme 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.
É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 l’erreur 18752 jusqu’à ce que le premier client se déconnecte. Une fois le premier client déconnecté, un autre client peut s’exécuter sp_replcmds
et devient le nouveau lecteur de journal.
Un message d’avertissement 18759 est ajouté au journal des erreurs SQL Server et au journal des applications Microsoft Windows, s’il sp_replcmds
n’est pas en mesure de répliquer une commande de texte, car le pointeur de texte n’a pas été récupéré dans la même transaction.
autorisations
Seuls les membres du rôle serveur fixe sysadmin ou le rôle de base de données fixe db_owner peuvent s’exécuter sp_replcmds
.