Partilhar 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ópico Convenções da 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 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 que 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. Porém, como as configurações de Assinante podem variar, scripts testados antes da postagem no Publicador ainda podem provocar erros em um Assinante. skiperror fornece a capacidade fazer com que o Distribution Agent ou o Merge Agent ignore erros e continue. 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.

Consulte também

Tarefas

Executar scripts durante a sincronização (Programação Transact-SQL de replicação)

Referência

Procedimentos armazenados do sistema (Transact-SQL)

Conceitos

Sincronizar dados