Transact-SQL 参考

sp_replcmds

将在给定的数据库内运行 sp_replcmds 的第一个客户端视为日志读取器。返回被标记为复制的事务的命令。此存储过程在发布服务器的发布数据库上执行。

语法

sp_replcmds [ @maxtrans = ] maxtrans

参数

[@maxtrans =] maxtrans

是返回其信息的事务数。maxtrans 的数据类型为 int,默认值为 1,表示指定下一个等待分发的事务。

结果集

sp_replcmds 由日志读取器进程使用。此过程返回有关其执行时所在的发布数据库的信息。它使您得以查看当前没有随命令分发的事务(那些保留在事务日志中的、没有被发送到分发服务器的事务),并且返回项目 ID、partial_command(真或假)、命令、页、行和时间截。

注释

sp_replcmds 用于事务复制。

此过程可以为所有者限定的表或未限定的表名(默认值)生成命令。添加限定的表名允许将数据从一个数据库内的特定用户所拥有的表复制到这个用户在另一个数据库内所拥有的表中。

说明  由于源数据库内的表名是由所有者名称限定的,所以目标数据库内的表所有者必须具有相同的所有者名称。

尝试在同一数据库内运行 sp_replcmds 的客户端会收到 18752 号错误,直到第一个客户端断开连接为止。当第一个客户端断开连接后,另一个客户端可以运行 sp_replcmds,并成为新的日志读取器。

说明  应只在解决与复制有关的问题时才运行 sp_replcmds 过程。

如果因为在同一个事务中没有检索到文本指针而导致 sp_replcmds 无法复制文本命令,则将在 Microsoft® SQL Server™ 错误日志和 Microsoft Windows NT® 应用程序日志中添加 18759 号警告消息。

权限

只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_replcmds

请参见

错误信息

sp_repldone

sp_replflush

sp_repltrans

系统存储过程