sp_attachsubscription (Transact-SQL)

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

重要事項重要事項

這項功能已被取代,未來的版本將會移除它。 這項功能不應該使用在新的開發工作中。 對於使用參數化篩選來進行資料分割的合併式發行集,我們建議您使用資料分割快照集的新功能,這些功能可以簡化大量訂閱的初始化。 如需詳細資訊,請參閱<含參數化篩選之合併式發行集的快照集>。 對於未進行資料分割的發行集,您可以用備份來初始化訂閱。 如需詳細資訊,請參閱<不使用快照集初始化交易式訂閱>。

主題連結圖示 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,預設值是 00 指定 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

請參閱

參考

系統預存程序 (Transact-SQL)