Compartilhar via


sp_addscriptexec (Transact-SQL)

Posta um script SQL (arquivo .sql ) em todos os Assinantes de uma publicação. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @publication= ] 'publication'
    É o nome da publicação. publication é sysname, sem padrão.

  • [ @scriptfile= ] 'scriptfile'
    É o caminho completo para o arquivo de script SQL. scriptfile é nvarchar (4000), sem padrão.

  • [ @skiperror= ] 'skiperror'
    Indica se o Distribution Agent ou Merge Agent devem parar quando um erro é encontrado durante o processamento de script. SkipError é bit, com um padrão de 0.

    0 = o agente irá parar.

    1 = o agente continua o script e ignora o erro.

  • .[ @publisher= ] 'publisher'
    Especifica um Publicador não-Microsoft SQL Server. publisher é sysname, com um padrão de NULL.

    ObservaçãoObservação

    publisher não deve ser usado ao publicar de um Editor SQL Server.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addscriptexec é usado em replicação transacional e de mesclagem.

sp_addscriptexec não é usado para replicação de instantâneo.

Para usar sp_addscriptexec, a conta de serviço do SQL Server deve ter permissões de leitura e gravação no local do instantâneo e permissão de leitura no local onde os scripts são armazenados.

O utilitário sqlcmd é usado para executar o script no Assinante e o script é executado no contexto de segurança usado pelo Distribution Agent ou Merge Agent ao conectar ao banco de dados de assinatura. Quando o agente é executado em uma versão anterior de SQL Server, o utilitário osql é usado em vez de sqlcmd.

sp_addscriptexec é útil para aplicar scripts nos assinantes e usa sqlcmd para aplicar o conteúdo do script no Assinante. No entanto, como as configurações do Assinante podem variar, scripts testados antes de serem postados no Publicador ainda podem causar erros em um Assinante. skiperror fornece ao Distribution Agent ou ao Merge Agent a capacidade de ignorar erros e continuar. Use sqlcmd para testar scripts antes de executar sp_addscriptexec.

ObservaçãoObservação

Erros ignorados continuarão sendo registrados no histórico do Agente para referência.

O uso de sp_addscriptexec para postar um arquivo de script em publicações usando FTP para entrega de instantâneo só tem suporte para Assinantes Microsoft SQL Server.

Permissões

Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_addscriptexec.