Partilhar via


sp_copysubscription (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Copia um banco de dados de assinatura que é assinaturas pull, mas não assinaturas push. Somente bancos de dados de arquivo único podem ser copiados. Esse procedimento armazenado é executado no Assinante no banco de dados de assinatura.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Para publicações de mesclagem, que são particionadas usando filtros com parâmetros, recomendamos o uso de novos recursos de instantâneos particionados, que simplificam a inicialização de um grande número de assinaturas. Para obter mais informações, consulte Criar um instantâneo para uma publicação de mesclagem com filtros com parâmetros. Para publicações que não são particionadas, você pode inicializar uma assinatura com um backup. Para obter mais informações, consulte Initialize a Transactional Subscription Without a Snapshot.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_copysubscription
    [ @filename = ] N'filename'
    [ , [ @temp_dir = ] N'temp_dir' ]
    [ , [ @overwrite_existing_file = ] overwrite_existing_file ]
[ ; ]

Argumentos

@filename [ = ] N'nome do arquivo'

A cadeia de caracteres que especifica o caminho completo, incluindo o nome do arquivo, no qual uma cópia do arquivo de dados (.mdf) é salva. @filename é nvarchar(260), sem padrão.

@temp_dir [ = ] N'temp_dir'

O nome do diretório que contém os arquivos temporários. @temp_dir é nvarchar(260), com um padrão de NULL. Se NULL, o diretório de dados padrão do SQL Server for usado. O diretório deve ter bastante espaço suficiente para conter um arquivo do tamanho de todos os arquivos de banco de dados de assinante combinados.

@overwrite_existing_file [ = ] overwrite_existing_file

Um sinalizador booleano opcional que especifica se um arquivo existente com o mesmo nome especificado deve ou não ser substituído no @filename. @overwrite_existing_file é bit, com um padrão de 0.

  • Se 1, ele substitui o arquivo especificado por @filename, se ele existir.
  • Se 0, o procedimento armazenado falhará se o arquivo existir e o arquivo não for substituído.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_copysubscription é usado em todos os tipos de replicação para copiar um banco de dados de assinatura para um arquivo como uma alternativa à aplicação de um instantâneo no Assinante. O banco de dados deve ser configurado para dar suporte apenas a assinaturas pull. Os usuários com permissões apropriadas podem fazer cópias do banco de dados de assinatura e, em seguida, enviar por email, copiar ou transportar o arquivo de assinatura (.msf) para outro Assinante, onde ele pode ser anexado como uma assinatura.

O tamanho do banco de dados de assinatura copiado deve ser menor de 2 gigabytes (GB).

sp_copysubscription só tem suporte para bancos de dados com assinaturas de cliente e não pode ser executado quando o banco de dados tem assinaturas de servidor.

Permissões

Somente membros da função de servidor fixa sysadmin podem executar sp_copysubscription.