sp_addscriptexec (Transact-SQL)
Expone un 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.
Convenciones 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 script 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 script. SkipError es de tipo bit y su valor predeterminado es 0.0 = el agente se detiene.
1 = el agente continúa con el 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 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 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 del script al suscriptor. No obstante, dado que las configuraciones del suscriptor pueden variar, los scripts probados antes de enviarlos 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 los 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 script para las publicaciones, el uso de FTP para la entrega de instantáneas solo se admite para los suscriptores de Microsoft SQL Server.
Permisos
Solo los miembros del rol fijo de servidor sysadmin o del rol fijo de base de datos db_owner pueden ejecutar sp_addscriptexec.
Vea también
Tasks
Ejecutar scripts durante la sincronización (programación de la replicación con Transact-SQL)
Referencia
Procedimientos almacenados del sistema (Transact-SQL)