sp_addscriptexec (Transact-SQL)

Expone una script SQL (archivo .sql) para todos los suscriptores de una publicación. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @publication= ] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado.

  • [ @scriptfile= ] 'scriptfile'
    Es la ruta de acceso completa al archivo de scripts SQL. scriptfile es de tipo nvarchar(4000) y no tiene 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 las scripts. SkipError es de tipo bit y su valor predeterminado es 0.

    0 = el agente se detiene.

    1 = el agente continúa con la script y omite el error.

  • [ @publisher= ] 'publisher'
    Especifica un publicador que no es de Microsoft SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.

    Nota

    publisher no se puede utilizar al publicar desde un publicador de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

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

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

Para utilizar sp_addscriptexec, la cuenta del servicio SQL Server debe tener permisos de lectura y escritura en la ubicación de la instantánea y permisos de lectura en la ubicación en la que se almacenan las scripts.

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

sp_addscriptexec resulta muy útil para aplicar scripts a suscriptores y usa sqlcmd para aplicar el contenido de la script al suscriptor. No obstante, dado que las configuraciones del suscriptor pueden variar, las scripts probadas antes de enviarlas al publicador también pueden generar errores en un suscriptor. skiperror ofrece la posibilidad de que el Agente de distribución o el Agente de mezcla omita los errores y continúe. Use sqlcmd para probar las scripts antes de ejecutar sp_addscriptexec.

Nota

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

Si se utiliza sp_addscriptexec para enviar un archivo de scripts para las publicaciones, el uso de FTP para la entrega de instantáneas sólo se admite para los suscriptores de Microsoft SQL Server.

Permisos

Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_addscriptexec.