将 SQL 脚本(.sql 文件)发布到发布的所有订阅服务器。此存储过程在发布服务器的发布数据库上执行。
sp_addscriptexec [ @publication = ] publication
[ , [ @scriptfile = ] 'scriptfile' ]
[ , [ @skiperror = ] 'skiperror' ]
[@publication = ] 'publication'
是发布名。publication 的数据类型为 sysname,没有默认设置。
[@scriptfile = ] 'scriptfile'
是 SQL 脚本文件的完整路径。scriptfile 的数据类型为 nvarchar(4000),没有默认设置。
[@skiperror = ] 'skiperror'
表示在脚本处理过程中遇到错误时是否停止分发代理程序或合并代理程序。SkipError 的数据类型为 bit,默认设置为 0。如果是 0,则停止分发代理程序或合并代理程序。如果是 1,则继续执行分发代理程序或合并代理程序,并忽略错误。
0(成功)或 1(失败)
sp_addscriptexec 用于事务复制和合并复制。
sp_addscriptexec 不用于快照复制。
sp_addscriptexec 对于将脚本应用到订阅服务器非常有用,并且使用 osql.exe 将脚本的内容应用于订阅服务器。但是,因为订阅服务器的配置千差万别,所以即使在发布到发布服务器之前对脚本进行了测试,仍有可能在订阅服务器上引起错误。SkipError 位使用户可以让分发代理程序或合并代理程序忽略错误继续运行。在运行 sp_addscriptexec 之前使用 osql.exe 测试脚本。
注意跳过的错误将继续记录在代理程序历史记录中供您参考。有关更多信息,请参见查看代理程序历史记录。
只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_addscriptexec 。
相关文章