sp_register_custom_scripting (Transact-SQL)
适用于:SQL Server
复制允许用户定义的自定义存储过程替换事务复制中使用的一个或多个默认过程。 对复制的表进行架构更改时,将重新创建这些存储过程。 sp_register_custom_scripting注册存储过程或 Transact-SQL 脚本文件,在架构更改发生时执行,以编写新的用户定义的自定义存储过程的定义。 这个新的用户定义的自定义存储过程应反映表的新架构。 sp_register_custom_scripting在发布服务器上对发布数据库执行,注册的脚本文件或存储过程在发生架构更改时在订阅服务器上执行。
语法
sp_register_custom_scripting [ @type = ] 'type'
[ @value = ] 'value'
[ , [ @publication = ] 'publication' ]
[ , [ @article = ] 'article' ]
参数
[ @type = ] 'type'
正在注册的自定义存储过程或脚本的类型。 类型 为 varchar(16),没有默认值,可以是下列值之一。
值 | 说明 |
---|---|
insert | 复制 INSERT 语句时,将执行注册的自定义存储过程。 |
update | 复制 UPDATE 语句时,将执行注册的自定义存储过程。 |
delete | 复制 DELETE 语句时,将执行注册的自定义存储过程。 |
custom_script | 在数据定义语言 (DDL) 触发器的末尾执行脚本。 |
[ @value = ] 'value'
要注册的 Transact-SQL 脚本文件的存储过程或名称和完全限定的路径的名称。 值为 nvarchar(1024),没有默认值。
注意
为 值参数指定 NULL 将取消注册以前注册的脚本,该脚本与运行 sp_unregister_custom_scripting相同。
当类型的值custom_script时,需要 Transact-SQL 脚本文件的名称和完整路径。 否则, 值 必须是已注册的存储过程的名称。
[ @publication = ] 'publication'
为其注册自定义存储过程或脚本的发布的名称。 publication 为 sysname,默认值为 NULL。
[ @article = ] 'article'
要为其注册自定义存储过程或脚本的文章的名称。 项目 为 sysname,默认值为 NULL。
返回代码值
0 (成功) 或 1 (失败)
注解
sp_register_custom_scripting用于快照和事务复制。
应在对复制的表进行架构更改前执行此存储过程。 有关使用此存储过程的详细信息,请参阅 重新生成自定义事务过程以反映架构更改。
权限
只有 sysadmin 固定服务器角色、db_owner固定数据库角色或db_ddladmin固定数据库角色的成员才能执行sp_register_custom_scripting。