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。