共用方式為


sp_register_custom_scripting (Transact-SQL)

複寫可讓使用者自訂的自訂預存程序,取代交易式複寫所用的一或多個預設程序。當複寫資料表變更結構描述時,就會重新建立這些預存程序。sp_register_custom_scripting 會註冊一個預存程序或 Transact-SQL 指令碼檔案,該預存程序或指令碼檔案是在變更結構描述以編寫新使用者自訂之自訂預存程序的定義之指令碼時執行。這個新的使用者自訂之自訂預存程序,應該要反映該資料表的新結構描述。sp_register_custom_scripting 執行於發行集資料庫的發行者端,而註冊的指令碼檔案或預存程序則是在結構描述變更時,執行於訂閱者端。

主題連結圖示Transact-SQL 語法慣例

語法

sp_register_custom_scripting [ @type  = ] 'type'
    [ @value = ] 'value' 
    [ , [ @publication = ] 'publication' ]
    [ , [ @article = ] 'article' ]

引數

  • [@type = ] 'type'
    這是正要註冊之自訂預存程序或指令碼的類型。type 是 varchar(16),沒有預設值,它可以是下列值之一。

    描述

    insert

    註冊的自訂預存程序是在複寫 INSERT 陳述式時執行。

    update

    註冊的自訂預存程序是在複寫 UPDATE 陳述式時執行。

    delete

    註冊的自訂預存程序是在複寫 DELETE 陳述式時執行。

    custom_script

    指令碼是在資料定義語言 (DDL) 觸發程序結尾執行。

  • [@value= ] 'value'
    預存程序的名稱,或是正在註冊之 Transact-SQL 指令碼檔案的名稱和完整路徑。value 是 nvarchar(1024),沒有預設值。

    [!附註]

    為 value 參數指定 NULL,會將先前註冊的指令碼取消註冊,此舉相當於執行 sp_unregister_custom_scripting

    當 type 的值是 custom_script 時,則為 Transact-SQL 指令碼檔案的名稱和完整路徑。否則,value 必須是已註冊的預存程序名稱。

  • [@publication= ] 'publication'
    正在註冊之自訂預存程序或指令碼的發行集名稱。publicationsysname,預設值是 NULL

  • [@article= ] 'article'
    正在註冊之自訂預存程序或指令碼的發行項名稱。article 是 sysname,預設值是 NULL

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_register_custom_scripting 用於快照式和交易式複寫中。

在變更複寫資料表的結構描述之前,要先執行這個預存程序。如需有關使用這個預存程序的詳細資訊,請參閱<重新產生自訂交易程序以反映結構描述變更>。

權限

只有系統管理員 (sysadmin) 固定伺服器角色、db_owner 固定資料庫角色或 db_ddladmin 固定資料庫角色的成員,才能夠執行 sp_register_custom_scripting