sp_attachsubscription (Transact-SQL)

將現有的訂閱資料庫附加至任何訂閱者。這個預存程序執行於 master 資料庫的新訂閱者端。

ms188415.note(zh-tw,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'
    這是依名稱指定目的地訂閱資料庫的字串。dbnamesysname,沒有預設值。
  • [ @filename= ] 'filename'
    這是主要 MDF (master 資料檔) 的名稱和實體位置。filenamenvarchar(260),沒有預設值。
  • [ @subscriber_security_mode= ] 'subscriber_security_mode'
    這是在同步處理時,用來連接訂閱者的訂閱者安全性模式。subscriber_security_modeint,預設值是 NULL。

    ms188415.note(zh-tw,SQL.90).gif附註:
    必須使用 Windows 驗證。如果 subscriber_security_mode 不是 1 (Windows 驗證),便會傳回錯誤。
  • [ @subscriber_login= ] 'subscriber_login'
    這是在同步處理時,用來連接訂閱者的訂閱者登入名稱。subscriber_loginsysname,預設值是 NULL。

    ms188415.note(zh-tw,SQL.90).gif附註:
    這個參數已被取代,維護它的目的,只是為了與舊版的指令碼相容。如果 subscriber_security_mode 不是 1,且指定了 subscriber_login,便會傳回錯誤。
  • [ @subscriber_password= ] 'subscriber_password'
    這是訂閱者密碼。subscriber_passwordsysname,預設值是 NULL。

    ms188415.note(zh-tw,SQL.90).gif附註:
    這個參數已被取代,維護它的目的,只是為了與舊版的指令碼相容。如果 subscriber_security_mode 不是 1,且指定了 subscriber_password,便會傳回錯誤。
  • [ @distributor_security_mode= ] distributor_security_mode
    這是在同步處理時,用來連接散發者的安全性模式。distributor_security_modeint,預設值是 00 指定 SQL Server 驗證。1 指定 Windows 驗證。 可能的話,請使用「Windows 驗證」。
  • [ @distributor_login= ] 'distributor_login'
    這是在同步處理時,用來連接散發者的散發者登入。如果 distributor_security_mode 設為 0,則需要 distributor_logindistributor_loginsysname,預設值是 NULL。
  • [ @distributor_password= ] 'distributor_password'
    這是散發者密碼。如果 distributor_security_mode 設為 0,則需要 distributor_passworddistributor_passwordsysname,預設值是 NULL。distributor_password 的值必須小於 120 個 Unicode 字元。

    ms188415.security(zh-tw,SQL.90).gif安全性注意事項:
    密碼不能空白。請使用增強式密碼。可能的話,會在執行階段提示使用者輸入安全性認證。如果您必須將認證儲存在指令碼檔案中,則必須維護這個檔案的安全性,使他人無法在未獲授權的情況下擅自存取。
  • [ @publisher_security_mode= ] publisher_security_mode
    這是在同步處理時,用來連接發行者的安全性模式。publisher_security_modeint,預設值是 1。如果是 0,則指定 SQL Server 驗證。如果是 1,便指定 Windows 驗證。 可能的話,請使用「Windows 驗證」。
  • [ @publisher_login= ] 'publisher_login'
    這是在同步處理時,用來連接發行者的登入。publisher_loginsysname,預設值是 NULL。
  • [ @publisher_password= ] 'publisher_password'
    這是連接到發行者時所用的密碼。publisher_passwordsysname,預設值是 NULL。publisher_password 的值必須小於 120 個 Unicode 字元。

    ms188415.security(zh-tw,SQL.90).gif安全性注意事項:
    密碼不能空白。請使用增強式密碼。可能的話,會在執行階段提示使用者輸入安全性認證。如果您必須將認證儲存在指令碼檔案中,則必須維護這個檔案的安全性,使他人無法在未獲授權的情況下擅自存取。
  • [ @job_login= ] 'job_login'
    這是執行代理程式之 Windows 帳戶的登入。job_loginnvarchar(257),沒有預設值。通往散發者的代理程式連接一律使用這個 Windows 帳戶。
  • [ @job_password= ] 'job_password'
    這是執行代理程式之 Windows 帳戶的密碼。job_passwordsysname,沒有預設值。job_password 的值必須小於 120 個 Unicode 字元。

    ms188415.security(zh-tw,SQL.90).gif安全性注意事項:
    可能的話,會在執行階段提示使用者輸入安全性認證。如果您必須將認證儲存在指令碼檔案中,則必須維護這個檔案的安全性,使他人無法在未獲授權的情況下擅自存取。
  • [ @db_master_key_password= ] 'db_master_key_password'
    這是使用者自訂資料庫主要金鑰的密碼。db_master_key_passwordnvarchar(524),預設值是 NULL。如果未指定 db_master_key_password,便會卸除並重新建立現有的資料庫主要金鑰。

    ms188415.security(zh-tw,SQL.90).gif安全性注意事項:
    可能的話,會在執行階段提示使用者輸入安全性認證。如果您必須將認證儲存在指令碼檔案中,則必須維護這個檔案的安全性,使他人無法在未獲授權的情況下擅自存取。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_attachsubscription 用於快照式複寫、交易式複寫和合併式複寫中。

如果發行集保留期限已過期,訂閱就無法附加至發行集。如果指定含有經過保留期限的訂閱,當附加訂閱或第一次同步處理訂閱時,會發生錯誤。發行集保留期限為 0 的發行集 (永不過期) 會被忽略。

權限

只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行 sp_attachsubscription

請參閱

參考

系統預存程序 (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助