sp_showpendingchanges (Transact-SQL)
适用于:SQL Server
返回一个结果集,其中显示了等待复制的更改。 此存储过程在发布服务器上的发布数据库中执行,或者在订阅服务器上的订阅数据库中执行。
注意
此过程提供近似的更改数以及这些更改所涉及到的行。 例如,此过程将从发布服务器或订阅服务器上检索信息,但是不会在这两个服务器上同时进行检索。 存储在其他节点上的信息产生的要同步的更改数可能比该过程估计的更改数小。
语法
sp_showpendingchanges
[ [ @destination_server = ] N'destination_server' ]
[ , [ @publication = ] N'publication' ]
[ , [ @article = ] N'article' ]
[ , [ @show_rows = ] show_rows ]
[ ; ]
参数
[ @destination_server = ] N'destination_server'
应用复制更改的服务器的名称。 @destination_server为 sysname,默认值为 NULL
.
[ @publication = ] N'publication'
发布的名称。 @publication为 sysname,默认值为 NULL
. 指定@publication时,结果仅限于指定的发布。
[ @article = ] N'article'
项目的名称。 @article为 sysname,默认值为 NULL
. 指定@article时,结果仅限于指定的项目。
[ @show_rows = ] show_rows
指定结果集是否包含有关挂起更改的更具体信息。 @show_rows为 int,默认值为 0
. 如果指定了值 1
,则结果集包含列 is_delete
和 rowguid
。
结果集
列名称 | 数据类型 | 描述 |
---|---|---|
destination_server |
sysname | 接收更改复制的服务器的名称。 |
pub_name |
sysname | 发布的名称。 |
destination_db_name |
sysname | 接收更改复制的数据库的名称。 |
is_dest_subscriber |
bit | 指示要将更改复制到订阅服务器。 一个值 1 ,指示正在将更改复制到订阅服务器。 0 表示正在将更改复制到发布服务器。 |
article_name |
sysname | 产生更改的表的项目名称。 |
pending_deletes |
int | 等待复制的删除数。 |
pending_ins_and_upd |
int | 等待复制的插入数和更新数。 |
is_delete |
bit | 指示挂起更改是否为删除操作。 1 指示更改是删除的值。 需要@show_rows的值1 。 |
rowguid |
uniqueidentifier | 标识已更改的行的 GUID。 需要@show_rows的值1 。 |
返回代码值
0
(成功)或 1
(失败)。
注解
sp_showpendingchanges
用于合并复制。
sp_showpendingchanges
在排查合并复制问题时使用。
第 0 代中不包含行的结果 sp_showpendingchanges
。
如果为@article指定的项目不属于为@publication指定的发布,则返回的pending_deletes
计数0
和 pending_ins_and_upd
。
权限
只有 sysadmin 固定服务器角色的成员或db_owner固定数据库角色的成员才能执行sp_showpendingchanges
。