sp_changesubscription (Transact-SQL)

适用于: SQL Server Azure SQL 托管实例

对于排队更新事务复制所涉及的快照或者事务推送订阅,或所涉及的请求订阅,更改其属性。 若要更改所有其他请求订阅类型的属性,请使用 sp_change_subscription_propertiessp_changesubscription 在发布服务器上对发布数据库执行。

重要

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

Transact-SQL 语法约定

语法

sp_changesubscription
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    , [ @subscriber = ] N'subscriber'
    , [ @destination_db = ] N'destination_db'
    , [ @property = ] N'property'
    , [ @value = ] N'value'
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

参数

[ @publication = ] N'publication'

要更改的发布的名称。 @publicationsysname,无默认值。

[ @article = ] N'article'

要更改的项目的名称。 @articlesysname,无默认值。

[ @subscriber = ] N'subscriber'

订阅服务器的名称。 @subscribersysname,无默认值。

[ @destination_db = ] N'destination_db'

订阅数据库的名称。 @destination_db为 sysname,无默认值。

[ @property = ] N'property'

要更改给定订阅的属性。 @property为 nvarchar(30),可以是表中的值之一。

[ @value = ] N'value'

指定 属性的新值。 @valuenvarchar(4000),可以是表中的值之一。

属性 价值 说明
distrib_job_login 用来运行代理的 Windows 帐户的登录名。
distrib_job_password 用来运行代理的 Windows 帐户的密码。
subscriber_catalog 1 在与 OLE DB 访问接口建立连接时要使用的目录。
subscriber_datasource 1 OLE DB 访问接口识别的数据源的名称。
subscriber_location 1 OLE DB 访问接口识别的数据库的位置。
subscriber_login 在订阅服务器上的登录名。
subscriber_password 提供的登录名的强密码。
subscriber_security_mode 1 连接订阅服务器时,使用 Windows 身份验证。
0 连接到订阅服务器时使用 SQL Server 身份验证。
subscriber_provider 1 非 SQL Server 数据源的 OLE DB 访问接口用于注册的唯一编程标识符 (PROGID)。
subscriber_providerstring 1 OLE DB 访问接口特定的连接字符串,用于标识数据源。
subscriptionstreams 每个分发代理允许的连接数并行应用于订阅服务器。 SQL Server 发布服务器支持一164系列值。 此属性必须为 0 非 SQL Server 订阅服务器、Oracle 发布服务器或对等订阅。
subscriber_type 1 ODBC 数据源服务器
3 OLE DB 访问接口
memory_optimized bit 指示订阅支持内存优化表。 memory_optimized,其中 1 true (订阅支持内存优化表)。

1 此属性仅适用于非 SQL Server 订阅服务器。

[ @publisher = ] N'publisher'

指定非 SQL Server 发布服务器。 @publisher为 sysname,默认值为 NULL.

不应为 SQL Server 发布服务器指定@publisher

返回代码值

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

注解

sp_changesubscription 用于快照复制和事务复制。

sp_changesubscription 只能用于修改排队更新事务复制中涉及的推送订阅或请求订阅的属性。 若要更改所有其他请求订阅类型的属性,请使用 sp_change_subscription_properties

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

权限

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