Executando scripts antes ou depois que o instantâneo é aplicado

É possível especificar scripts a serem executados no Assinante antes ou depois que o instantâneo é aplicado. Scripts podem ser usados por várias razões, tais como a criação de logon e esquemas (proprietários de objeto) em cada Assinante.

Especifica-se um local de arquivo para cada script, e o Snapshot Agent copia os arquivos de script para a atual pasta de instantâneo a cada vez que ocorrer o processo de instantâneo. O Distribution Agent ou Merge Agent executa o script pré-instantâneo antes de qualquer script do objeto replicado, ao aplicar um instantâneo. O Distribution Agent ou o Merge Agent executa o script pós-instantâneo depois que todos os outros scripts de objeto e dados replicados tentam sido aplicados. Depois que a aplicação de instantâneo for concluída e os arquivos de script forem executados com êxito, os arquivos de script são removidos do diretório de trabalho no Assinante.

O script é executado lançando o utilitáriosqlcmd. Antes de implantar um script, execute-o com sqlcmd para assegurar que a execução corra conforme esperado. Os conteúdos de scripts executados antes e depois que o instantâneo é aplicado devem ser repetíveis. Por exemplo, se você criar uma tabela em um script, você deve, em primeiro lugar, verificar sua existência e tomar as ações devidas caso ela exista. O script deve ser repetível, pois se você precisar reinicializar uma assinatura para a qual o script já foi aplicado, o script será aplicado novamente quando o novo instantâneo for aplicado durante a reinicialização.

Se você estiver compactando o arquivo de instantâneo (colocando-o em um formato de arquivo CAB Microsoft), os scripts também são compactados e colocados no arquivo CAB. Depois que o arquivo de instantâneo compactado for transferido para o Assinante e descompactado para um diretório de trabalho no Assinante, qualquer script indicado como script de pré-instantâneo será executado. Da mesma forma, qualquer script de pós-instantâneo é descompactado e executado no Assinante como última etapa aplicando-se o instantâneo.

Observação importanteImportante

É possível executar scripts ao aplicar o instantâneo a Assinantes executando Microsoft SQL Server 7.0 se você usar assinaturas push e o Distribuidor estiver executando SQL Server 2000 ou posterior. Não é possível executar scripts ao aplicar o instantâneo a Assinantes executando o SQL Server 7.0 se você usar assinaturas pull.

Para executar scripts antes e depois que o instantâneo é aplicado