sp_attachsubscription (Transact-SQL)
将现有的订阅数据库附加到任何订阅服务器。 此存储过程在新订阅服务器的主数据库中执行。
重要提示 |
---|
不推荐使用此功能,该功能将在未来版本中删除。 在新的开发工作中不要使用此功能。 对于使用参数化筛选器分区的合并发布,建议您使用分区快照的新功能,这些功能可简化大量订阅的初始化。 有关详细信息,请参阅带有参数化筛选器的合并发布的快照。 对于未分区的发布,可以使用备份来初始化订阅。 有关详细信息,请参阅初始化合并订阅(不使用快照)和初始化事务订阅(不使用快照)。 |
语法
sp_attachsubscription [ @dbname = ] 'dbname'
, [ @filename = ] 'filename'
[ , [ @subscriber_security_mode = ] 'subscriber_security_mode' ]
[ , [ @subscriber_login = ] 'subscriber_login' ]
[ , [ @subscriber_password = ] 'subscriber_password' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] 'distributor_login' ]
[ , [ @distributor_password = ] 'distributor_password' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] 'publisher_login' ]
[ , [ @publisher_password = ] 'publisher_password' ]
[ , [ @job_login = ] 'job_login' ]
[ , [ @job_password = ] 'job_password' ]
[ , [ @db_master_key_password = ] 'db_master_key_password' ]
参数
[ @dbname= ] 'dbname'
按名称指定目标订阅数据库的字符串。dbname 的数据类型为 sysname,无默认值。[ @filename= ] 'filename'
主 MDF(master 数据文件)的名称和物理位置。filename 的数据类型为 nvarchar(260),无默认值。[ @subscriber_security_mode= ] 'subscriber_security_mode'
在同步时为连接到订阅服务器而使用的订阅服务器安全模式。subscriber_security_mode 的数据类型为 int,默认值为 NULL。注意 必须使用 Windows 身份验证。 如果 subscriber_security_mode 不为 1(Windows 身份验证),则返回错误。
[ @subscriber_login= ] 'subscriber_login'
在同步时为连接到订阅服务器而使用的订阅服务器登录名。subscriber_login 的数据类型为 sysname,默认值为 NULL。注意 已不推荐使用此参数,保留它只是为了让脚本能够向后兼容。 如果 subscriber_security_mode 不为 1 且指定了 subscriber_login,则返回错误。
[ @subscriber_password= ] 'subscriber_password'
订阅服务器的密码。subscriber_password 的数据类型为 sysname,默认值为 NULL。注意 已不推荐使用此参数,保留它只是为了让脚本能够向后兼容。 如果 subscriber_security_mode 不为 1 且指定了 subscriber_password,则返回错误。
[ @distributor_security_mode= ] distributor_security_mode
在同步时为连接到分发服务器而使用的安全模式。distributor_security_mode 的数据类型为 int,默认值为 0。 0 指定 SQL Server 身份验证。 1 指定 Windows 身份验证。 请尽可能使用 Windows 身份验证。[ @distributor_login= ] 'distributor_login'
在同步时为连接到分发服务器而使用的分发服务器登录名。如果将 distributor_security_mode 设置为 0,则需要 distributor_login。distributor_login 的数据类型为 sysname,默认值为 NULL。[ @distributor_password= ] 'distributor_password'
分发服务器密码。如果将 distributor_security_mode 设置为 0,则需要 distributor_password。distributor_password 的数据类型为 sysname,默认值为 NULL。 distributor_password 的值必须少于 120 个 Unicode 字符。安全说明 请不要使用空密码。 建议使用强密码。 如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。
[ @publisher_security_mode= ] publisher_security_mode
在同步时为连接到发布服务器而使用的安全模式。publisher_security_mode 的数据类型为 int,默认值为 1。 0 指定 SQL Server 身份验证。 如果为 1,则指定了 Windows 身份验证。 请尽可能使用 Windows 身份验证。[ @publisher_login= ] 'publisher_login'
在同步时用于连接到发布服务器的登录名。publisher_login 的数据类型为 sysname,默认值为 NULL。[ @publisher_password= ] 'publisher_password'
连接到发布服务器时所用的密码。publisher_password 的数据类型为 sysname,默认值为 NULL。 publisher_password 的值必须少于 120 个 Unicode 字符。安全说明 请不要使用空密码。 建议使用强密码。 如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。
[ @job_login= ] 'job_login'
用于运行代理的 Windows 帐户的登录名。job_login 的数据类型为 nvarchar(257),无默认值。 此 Windows 帐户总是用于与分发服务器建立代理连接。[ @job_password= ] 'job_password'
运行代理时所用的 Windows 帐户的密码。job_password 的数据类型为 sysname,无默认值。 job_password 的值必须少于 120 个 Unicode 字符。安全说明 如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。
[ @db_master_key_password= ] 'db_master_key_password'
用户定义数据库主密钥的密码。db_master_key_password 的数据类型为 nvarchar(524),默认值为 NULL。 如果未指定 db_master_key_password,则现有数据库主密钥将被删除,然后重新创建。安全说明 如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。
返回代码值
0(成功)或 1(失败)
注释
sp_attachsubscription 在快照复制、事务复制和合并复制中使用。
如果发布保持期已满,则不能将订阅附加到发布中。 如果指定一个保持期已满的订阅,则附加该订阅或先对其进行同步时将发生错误。 将忽略发布保持期为 0(从不过期)的发布。
权限
只有 sysadmin 固定服务器角色的成员才能执行 sp_attachsubscription。