sp_setsubscriptionxactseqno (Transact-SQL)

进行故障排除时,用于指定订阅服务器上的分发代理应用的下一个事务的日志序列号 (LSN),从而使代理可以跳过失败的事务。此存储过程在订阅服务器上对订阅数据库执行。非 SQL Server 订阅服务器不支持该过程。

ms188764.Caution(zh-cn,SQL.90).gif注意:
如果未正确使用此存储过程或指定了错误的 LSN 值,则将导致分发代理还原已应用于订阅服务器的更改,或跳过所有剩余的更改。

主题链接图标Transact-SQL 语法约定

语法

sp_setsubscriptionxactseqno [ @publisher = ] 'publisher'
        , [ @publisher_db = ] 'publisher_db'
        , [ @publication = ] 'publication'
        , [ @xact_seqno = ] xact_seqno 

参数

  • [ @publisher= ] 'publisher'
    发布服务器的名称。publisher 的数据类型为 sysname,无默认值。
  • [ @publisher_db= ] 'publisher_db'
    发布数据库的名称。publisher_db 的数据类型为 sysname,无默认值。对于非 SQL Server 发布服务器,publisher_db 为分发数据库的名称。
  • [ [@publication= ] 'publication'
    发布的名称。publication 的数据类型为 sysname,无默认值。如果分发代理由多个发布共享,则必须将 publication 值指定为 ALL。
  • [ @xact_seqno= ] xact_seqno
    要应用于订阅服务器的分发服务器上的下一个事务的 LSN。xact_seqno 的数据类型为 binary(16),无默认值。

返回代码值

0(成功)或 1(失败)

结果集

列名 数据类型 说明

ORIGINAL XACT_SEQNO

varbinary(16)

要应用于订阅服务器的下一个事务的原始 LSN。

UPDATED XACT_SEQNO

varbinary(16)

要应用于订阅服务器的下一个事务的更新后的 LSN。

SUBSCRIPTION STREAM COUNT

int

上次同步期间使用的订阅流数。

备注

sp_setsubscriptionxactseqno 用于事务复制。

sp_setsubscriptionxactseqno 不能用于对等事务复制拓扑。

sp_setsubscriptionxactseqno 可用于跳过应用于订阅服务器时会导致错误的特定事务。如果出现故障或分发代理停止,请调用分发服务器上的 sp_helpsubscriptionerrors (Transact-SQL) 以检索失败的事务的 xact_seqno 值,然后调用 sp_setsubscriptionxactseqno,为 xact_seqno 传递此值。这将确保只处理此 LSN 之后的命令。

xact_seqno 值指定为 0 时,可将分发数据库中所有挂起的命令传递给订阅数据库。

如果分发代理使用了多订阅流,则 sp_setsubscriptionxactseqno 可能失败。

如果出现此错误,必须运行使用单个订阅流的分发代理。有关详细信息,请参阅Replication Distribution Agent

权限

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

请参阅

其他资源

跳过事务复制中的错误

帮助和信息

获取 SQL Server 2005 帮助