将请求订阅或匿名订阅添加到快照发布或事务发布。此存储过程在订阅服务器上要创建请求订阅的数据库上执行。
sp_addpullsubscription [ @publisher = ] 'publisher'
,
[ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication '
[ , [ @independent_agent = ] 'independent_agent' ]
[ , [ @subscription_type = ] 'subscription_type']
[ , [ @description = ] 'description' ]
[ , [ @update_mode = ] 'update_mode' ]
[ , [ @immediate_sync = ] immediate_sync ]
[@publisher = ] 'publisher'
是发布服务器名。publisher 的数据类型为 sysname,没有默认设置。
[@publisher_db = ] 'publisher_db'
是发布服务器数据库名。publisher_db 的数据类型为 sysname,没有默认设置。
[@publication =] 'publication'
是发布名。publication 的数据类型为 sysname,没有默认设置。
[@independent_agent = ] 'independent_agent'
指定是否有用于该发布的单独的分发代理程序。independent_agent 的数据类型为 nvarchar(5),默认设置为 TRUE。如果是 true,则表示有用于该发布的独立分发代理程序。如果是 false,则表示每对发布服务器数据库/订阅服务器数据库都有一个分发代理程序。independent_agent 是该发布的属性,而且它在此处的值必须与在发布服务器上的值相同。
[@subscription_type = ] 'subscription_type'
是该发布的订阅类型。subscription_type 的数据类型为 nvarchar(9),可以是下列值之一。
值 | 描述 |
---|---|
pull | 请求订阅 |
anonymous(默认值) | 匿名订阅 |
[@description = ] 'description'
是对发布的描述。publication 的数据类型为 nvarchar(100),默认设置为 NULL。
[@update_mode = ] 'update_mode'
是更新的类型。update_mode 的数据类型为 nvarchar(15),可以是下列值之一。
值 | 描述 |
---|---|
read-only(默认值) | 该订阅是只读的。在订阅服务器上所做的更改不会发送回发布服务器。 |
synctran | 启用对即时更新订阅的支持。 |
queued tran | 启用排队更新的订阅。可以在订阅服务器上进行数据修改,将其存储在队列中,然后传播到发布服务器。 |
failover | 将排队更新作为故障转移的情况下启用用于即时更新的订阅。可以在订阅服务器上进行数据修改并立即传播到发布服务器。如果发布服务器与订阅服务器未连接在一起,则可以将在订阅服务器上所做的数据修改存储在队列中,直到订阅服务器与发布服务器重新连接在一起。 |
[@immediate_sync = ] immediate_sync
表示每次快照代理程序运行时是否创建或重新创建同步文件。immediate_sync 的数据类型为 bit,默认设置为 1,而且该设置必须与 sp_addpublication 中 immediate_sync 的值相同。immediate_sync 是该发布的属性,而且它在此处的值必须与在发布服务器上的值相同。
0(成功)或 1(失败)
sp_addpullsubscription 用于快照复制和事务复制。
如果在订阅服务器上没有 MSreplication_subscriptions 表,则 sp_addpullsubscription 创建它。它还在 MSreplication_subscriptions 表中添加行。对于请求订阅,应首先在发布服务器上调用 sp_addsubscription。
只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_addpullsubscription。