適用於:SQL Server
復寫可讓使用者定義的自定義預存程式取代事務複製中使用的一或多個預設程式。 對復寫數據表進行架構變更時,會重新建立這些預存程式。
sp_register_custom_scripting 註冊預存程式或 Transact-SQL 腳本檔案,該檔案會在架構變更發生時執行,以編寫新使用者自定義預存程式定義的腳本。 這個新的使用者定義的自定義預存程式應該反映數據表的新架構。
sp_register_custom_scripting 會在發行集資料庫的發行者端執行,而且當架構變更發生時,會在訂閱者端執行已註冊的腳本檔案或預存程式。
語法
sp_register_custom_scripting
[ @type = ] 'type'
, [ @value = ] N'value'
[ , [ @publication = ] N'publication' ]
[ , [ @article = ] N'article' ]
[ ; ]
引數
[ @type = ] 'type'
要註冊的自定義預存程式或腳本類型。 @type為 varchar(16),而且可以是下列其中一個值。
| 值 | 說明 |
|---|---|
insert |
複寫語句時 INSERT ,會執行已註冊的自定義預存程式。 |
update |
複寫語句時 UPDATE ,會執行已註冊的自定義預存程式。 |
delete |
複寫語句時 DELETE ,會執行已註冊的自定義預存程式。 |
custom_script |
文本會在數據定義語言 (DDL) 觸發程式結尾執行。 |
[ @value = ] N'value'
要註冊之 Transact-SQL 腳本檔案之預存程式或名稱和完整路徑的名稱。 @value為 nvarchar(2048),沒有預設值。
指定 NULL@value 取消註冊先前註冊的腳本,這與執行 sp_unregister_custom_scripting相同。
當@type的值custom_script時,必須是 Transact-SQL 腳本檔案的名稱和完整路徑。 否則, @value 必須是已註冊預存程序的名稱。
[ @publication = ] N'publication'
要註冊自定義預存程式或腳本的發行集名稱。
@publication為 sysname,預設值為 NULL。
[ @article = ] N'article'
要註冊自定義預存程式或腳本之發行項的名稱。 @article為 sysname。
傳回碼值
0 (成功) 或 1 (失敗)。
備註
sp_register_custom_scripting 用於快照式和事務複製。
此預存程式應該先執行,再對復寫數據表進行架構變更。 如需使用此預存程式的詳細資訊,請參閱 交易式發行項 - 重新產生自定義程式以反映架構變更。
權限
只有系統管理員固定伺服器角色、db_owner固定資料庫角色或db_ddladmin固定資料庫角色的成員才能執行 sp_register_custom_scripting。