sp_attachsubscription (Transact-SQL)
將現有的訂閱資料庫附加至任何訂閱者。這個預存程序執行於 master 資料庫的新訂閱者端。
重要事項 |
---|
這項功能已被取代,未來的版本將會移除它。這項功能不應該使用在新的開發工作中。對於使用參數化篩選來進行資料分割的合併式發行集,我們建議您使用資料分割快照集的新功能,這些功能可以簡化大量訂閱的初始化。如需詳細資訊,請參閱<含參數化篩選之合併式發行集的快照集>。對於未進行資料分割的發行集,您可以用備份來初始化訂閱。如需詳細資訊,請參閱<不使用快照集初始化合併訂閱>和<不使用快照集初始化交易式訂閱>。 |
語法
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。