sp_attachsubscription (Transact-SQL)

将现有的订阅数据库附加到任何订阅服务器。此存储过程在新订阅服务器的主数据库中执行。

ms188415.note(zh-cn,SQL.90).gif重要提示:
不推荐使用此功能,该功能将在未来版本中删除。在新的开发工作中不要使用此功能。对于使用参数化筛选器分区的合并发布,建议您使用分区快照的新功能,这些功能可简化大量订阅的初始化。有关详细信息,请参阅带有参数化筛选器的合并发布的快照。对于未分区的发布,可以使用备份来初始化订阅。有关详细信息,请参阅初始化合并订阅(不使用快照)初始化事务订阅(不使用快照)

主题链接图标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。

    ms188415.note(zh-cn,SQL.90).gif注意:
    必须使用 Windows 身份验证。如果 subscriber_security_mode 不为 1(Windows 身份验证),则返回错误。
  • [ @subscriber_login= ] 'subscriber_login'
    在同步时为连接到订阅服务器而使用的订阅服务器登录名。subscriber_login 的数据类型为 sysname,默认值为 NULL。

    ms188415.note(zh-cn,SQL.90).gif注意:
    已不推荐使用此参数,保留它只是为了让脚本能够向后兼容。如果 subscriber_security_mode 不为 1 且指定了 subscriber_login,则返回错误。
  • [ @subscriber_password= ] 'subscriber_password'
    订阅服务器的密码。subscriber_password 的数据类型为 sysname,默认值为 NULL。

    ms188415.note(zh-cn,SQL.90).gif注意:
    已不推荐使用此参数,保留它只是为了让脚本能够向后兼容。如果 subscriber_security_mode 不为 1 且指定了 subscriber_password,则返回错误。
  • [ @distributor_security_mode= ] distributor_security_mode
    在同步时为连接到分发服务器而使用的安全模式。distributor_security_mode 的数据类型为 int,默认值为 00 指定 SQL Server 身份验证。1 指定 Windows 身份验证。 请尽可能使用 Windows 身份验证。
  • [ @distributor_login= ] 'distributor_login'
    在同步时为连接到分发服务器而使用的分发服务器登录名。如果将 distributor_security_mode 设置为 0,则需要 distributor_logindistributor_login 的数据类型为 sysname,默认值为 NULL。
  • [ @distributor_password= ] 'distributor_password'
    分发服务器的密码。如果将 distributor_security_mode 设置为 0,则需要 distributor_passworddistributor_password 的数据类型为 sysname,默认值为 NULL。distributor_password 的值必须少于 120 个 Unicode 字符。

    ms188415.security(zh-cn,SQL.90).gif安全说明:
    请不要使用空密码。建议使用强密码。如果可能,请在运行时提示用户输入安全凭据。如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。
  • [ @publisher_security_mode= ] publisher_security_mode
    在同步时为连接到发布服务器而使用的安全模式。publisher_security_mode 的数据类型为 int,默认值为 10 指定 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 字符。

    ms188415.security(zh-cn,SQL.90).gif安全说明:
    请不要使用空密码。建议使用强密码。如果可能,请在运行时提示用户输入安全凭据。如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。
  • [ @job_login= ] 'job_login'
    用于运行代理的 Windows 帐户的登录名。job_login 的数据类型为 nvarchar(257),无默认值。此 Windows 帐户总是用于与分发服务器建立代理连接。
  • [ @job_password= ] 'job_password'
    用于运行代理的 Windows 帐户的密码。job_password 的数据类型为 sysname,无默认值。job_password 的值必须少于 120 个 Unicode 字符。

    ms188415.security(zh-cn,SQL.90).gif安全说明:
    如果可能,请在运行时提示用户输入安全凭据。如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。
  • [ @db_master_key_password= ] 'db_master_key_password'
    用户定义数据库主密钥的密码。db_master_key_password 的数据类型为 nvarchar(524),默认值为 NULL。如果未指定 db_master_key_password,则现有数据库主密钥将被删除,然后重新创建。

    ms188415.security(zh-cn,SQL.90).gif安全说明:
    请尽可能在运行时提示用户输入安全凭据。如果将凭据存储在脚本文件中,则必须确保文件的安全性以防止未经授权的访问。

返回代码值

0(成功)或 1(失败)

备注

sp_attachsubscription 在快照复制、事务复制和合并复制中使用。

如果发布保持期已满,则不能将订阅附加到发布中。如果指定一个保持期已满的订阅,则附加该订阅或先对其进行同步时将发生错误。将忽略发布保持期为 0(从不过期)的发布。

权限

只有 sysadmin 固定服务器角色的成员才能执行 sp_attachsubscription

请参阅

参考

系统存储过程 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助