设置所有可更新订阅的同步触发器在连接到发布服务器时所使用的配置和安全信息。此存储过程在订阅服务器的订阅数据库上执行。
sp_link_publication [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
,
[ @security_mode = ] security_mode
[ , [ @login =] 'login' ]
[ , [ @password = ] 'password' ]
[, [ @distributor = ] 'distributor' ]
[@publisher =] 'publisher'
是要链接到的发布服务器名。publisher 的数据类型为 sysname,无默认值。
[@publisher_db =] 'publisher_db'
是要链接到的发布服务器数据库名。publisher_db 的数据类型为 sysname,无默认值。
[@publication =] 'publication'
是要链接到的发布名。publication 的数据类型为 sysname,无默认值。
[@security_mode =] security_mode
是链接到发布服务器时使用的安全模式。security_mode 的数据类型为 int,无默认值。如果为 0,则表示同步触发器使用到发布服务器的动态 RPC 连接。如果为 2,则表示同步触发器使用静态 sysservers 项完成 RPC,而且必须在 sysservers 表内将 publisher 定义为远程服务器或链接服务器。
[ @login = ] 'login'
是登录。login 的数据类型为 sysname,默认值为 NULL。
[@password = ] 'password'
是密码。password 的数据类型为 sysname,默认值为 NULL。
[@distributor = ] 'distributor'
是分发服务器名。distributor 的数据类型为 sysname,默认值为 NULL。
0(成功)或 1(失败)
sp_link_publication 由快照复制和事务复制中的所有可更新订阅使用。
sp_link_publication 既可以用于强制订阅,也可以用于请求订阅。在创建订阅之前或之后都可以调用此过程。在 MSsubscription_properties 系统表内插入或更新了一项。使用 sp_helpsubscription_properties 查看设置的值(publisher_security_mode、publisher_login、publisher_password)。
对于强制订阅,可以使用 sp_subscription_cleanup 清除该项。对于请求订阅,可以使用 sp_droppullsubscription 或 sp_subscription_cleanup 清除该项。出于安全考虑,也可以用 NULL 密码调用 sp_link_publisher 以清除 MSsubscription_properties 系统表内的该项。
当即时更新订阅服务器连接到发布服务器时,它使用的默认模式不允许使用 Windows 身份验证进行连接。若要用 Windows 身份验证模式进行连接,必须设置到发布服务器的链接服务器,且即时更新订阅服务器在更新订阅服务器时应使用该连接。这要求 sp_link_publication 以 security_mode = 2 运行。
只有 sysadmin 固定服务器角色成员才能执行 sp_link_publication。