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。