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'
    为其注册自定义存储过程或脚本的发布的名称。publication 的数据类型为 sysname,默认值为 NULL

  • [ @article = ] 'article'
    为其注册自定义存储过程或脚本的项目的名称。article 的数据类型为 sysname,默认值为 NULL

返回代码值

0(成功)或 1(失败)

注释

sp_register_custom_scripting 用于快照复制和事务复制。

应在对复制的表进行架构更改前执行此存储过程。 有关使用此存储过程的详细信息,请参阅重新生成自定义事务性过程以反映架构更改

权限

只有 sysadmin 固定服务器角色、db_ownerdb_ddladmin 固定数据库角色的成员才能执行 sp_register_custom_scripting