sp_changemergesubscription (Transact-SQL)

适用范围:SQL Server

更改合并推送订阅的选定属性。 此存储过程在发布服务器上对发布数据库执行。

重要

使用远程分发服务器配置发布服务器时,为所有参数(包括 @job_login@job_password)提供的值将作为纯文本发送到分发服务器。 在执行此存储过程之前,应该对发布服务器及其远程分发服务器之间的连接进行加密。 有关详细信息,请参阅将 SQL Server 数据库引擎配置为使用加密连接

语法

sp_changemergesubscription
    [ [ @publication = ] N'publication' ]
    [ , [ @subscriber = ] N'subscriber' ]
    [ , [ @subscriber_db = ] N'subscriber_db' ]
    [ , [ @property = ] N'property' ]
    [ , [ @value = ] N'value' ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

参数

[ @publication = ] N'publication'

要更改的发布的名称。 @publication为 sysname,默认值为 NULL. 此发布必须已经存在且必须符合标识符规则。

[ @subscriber = ] N'subscriber'

订阅服务器的名称。 @subscriber为 sysname,默认值为 NULL.

[ @subscriber_db = ] N'subscriber_db'

订阅数据库的名称。 @subscriber_dbsysname,可以是下表中的值之一。

[ @property = ] N'property'

给定发布的要更改的属性。 @propertysysname,可以是下表中的值之一。

[ @value = ] N'value'

指定 @property的新值。 @valuenvarchar(255),默认值为 NULL.

属性 价值 说明
description 对该合并订阅的说明。
priority 订阅优先级。 在检测到冲突时,默认冲突解决程序将使用该优先级来选取入选方。
merge_job_login 用来运行代理的 Windows 帐户的登录名。
merge_job_password 用来运行代理的 Windows 帐户的密码。
publisher_security_mode 1 连接发布服务器时,使用 Windows 身份验证。
0 连接到发布服务器时使用 SQL Server 身份验证。
publisher_login 发布服务器上的登录名。
publisher_password 提供的发布服务器登录的强密码。
subscriber_security_mode 1 连接订阅服务器时,使用 Windows 身份验证。
0 连接到订阅服务器时使用 SQL Server 身份验证。
subscriber_login 在订阅服务器上的登录名。
subscriber_password 提供的订阅服务器登录的强密码。
sync_type automatic 已发布表的架构和初始数据将首先传输到订阅服务器。
none 订阅服务器已经具有已发布表的架构和初始数据;将始终传输系统表和数据。
use_interactive_resolver true 允许交互式地解决所有允许交互式解决的项目的冲突。
false 使用默认解决程序或自定义解决程序自动解决冲突。
NULL(默认值) NULL(默认值)

[ @force_reinit_subscription = ] force_reinit_subscription

确认此存储过程所执行的操作是否需要重新初始化现有订阅。 @force_reinit_subscription为,默认值为 0.

  • 0 指定对合并项目所做的更改不会导致重新初始化订阅。 如果该存储过程检测到更改将需要重新初始化订阅,则会发生错误,并且不进行任何更改。

  • 1 指定对合并项目重新初始化现有订阅的更改,并为要发生的订阅重新初始化授予权限。

返回代码值

0(成功)或 1(失败)。

注解

sp_changemergesubscription 用于合并复制。

更改代理登录名或密码之后,必须先停止并重新启动代理,然后更改才能生效。

权限

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