sp_addscriptexec (Transact-SQL)

Se aplica a:SQL Server

Publica un script transact-SQL (.sql archivo) en todos los suscriptores de una publicación. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_addscriptexec
    [ @publication = ] N'publication'
    , [ @scriptfile = ] N'scriptfile'
    [ , [ @skiperror = ] skiperror ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Argumentos

[ @publication = ] N'publication'

Nombre de la publicación. @publication es sysname, sin ningún valor predeterminado.

[ @scriptfile = ] N'scriptfile'

Ruta de acceso completa al archivo de script SQL. @scriptfile es nvarchar(4000), sin ningún valor predeterminado.

[ @skiperror = ] skiperror

Indica si el Agente de distribución o el Agente de mezcla se debe detener cuando se encuentra un error durante el procesamiento de script. @skiperror es bit, con un valor predeterminado de 0.

  • 0 = el agente se detiene.
  • 1 = el agente continúa el script y omite el error.

[ @publisher = ] N'publisher'

Especifica un publicador que no es de SQL Server. @publisher es sysname, con un valor predeterminado de NULL.

@publisher no se debe usar al publicar desde un publicador de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

sp_addscriptexec se usa en la replicación transaccional y la replicación de mezcla.

sp_addscriptexec no se usa para la replicación de instantáneas.

Para usar sp_addscriptexec, la cuenta de servicio de SQL Server debe tener permisos de lectura y escritura en la ubicación de instantánea y permisos de lectura en la ubicación donde se almacenan los scripts.

La utilidad sqlcmd se usa para ejecutar el script en el suscriptor y el script se ejecuta en el contexto de seguridad usado por el Agente de distribución o Agente de mezcla al conectarse a la base de datos de suscripciones. Cuando el agente se ejecuta en una versión anterior de SQL Server, se usa la utilidad osql en lugar de la utilidad sqlcmd.

sp_addscriptexec resulta útil para aplicar scripts a los suscriptores y usa la utilidad sqlcmd para aplicar el contenido del script al suscriptor. Sin embargo, dado que las configuraciones de suscriptor pueden variar, los scripts probados antes de publicar en el publicador podrían seguir causando errores en un suscriptor. @skiperror permite que el Agente de distribución o Agente de mezcla omita los errores y continúe. Use la utilidad sqlcmd para probar scripts antes de ejecutar sp_addscriptexec.

Nota:

Los errores omitidos se siguen registrando en el historial del agente como referencia.

El uso sp_addscriptexec de para publicar un archivo de script para publicaciones que usan FTP para la entrega de instantáneas solo se admite para suscriptores de SQL Server.

Permisos

Solo los miembros del rol fijo de servidor sysadmin o db_owner rol fijo de base de datos pueden ejecutar sp_addscriptexec.