Compartir a través de


sp_copysubscription (Transact-SQL)

Se aplica a: SQL Server Azure SQL Managed Instance

Copia una base de datos de suscripciones que es suscripciones de extracción, pero no suscripciones de inserción. Solo se pueden copiar bases de datos de un único archivo. Este procedimiento almacenado se ejecuta en el suscriptor de la base de datos de suscripciones.

Importante

Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. En las publicaciones de combinación en las que se han creado particiones mediante filtros con parámetros, se recomienda utilizar las nuevas características de las instantáneas con particiones, que simplifican la inicialización de un gran número de suscripciones. Para más información, consulte Crear una instantánea para una publicación de mezcla con filtros con parámetros. En el caso de las publicaciones que no tienen particiones, puede inicializar una suscripción con una copia de seguridad. Para obtener más información, consulte Initialize a Transactional Subscription Without a Snapshot.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @filename = ] N'filename'

Cadena que especifica la ruta de acceso completa, incluido el nombre de archivo, en la que se guarda una copia del archivo de datos (.mdf). @filename es nvarchar(260), sin ningún valor predeterminado.

[ @temp_dir = ] N'temp_dir'

Nombre del directorio que contiene los archivos temporales. @temp_dir es nvarchar(260), con un valor predeterminado de NULL. Si NULLes , se usa el directorio de datos predeterminado de SQL Server. El directorio debe tener espacio suficiente para contener un archivo que tenga el tamaño de todos los archivos de la base de datos del suscriptor combinados.

[ @overwrite_existing_file = ] overwrite_existing_file

Marca booleana opcional que especifica si se va a sobrescribir o no un archivo existente con el mismo nombre especificado en @filename. @overwrite_existing_file es bit, con un valor predeterminado de 0.

  • Si 1es , sobrescribe el archivo especificado por @filename, si existe.
  • Si 0es , se produce un error en el procedimiento almacenado si el archivo existe y el archivo no se sobrescribe.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

sp_copysubscription se usa en todos los tipos de replicación para copiar una base de datos de suscripciones en un archivo como alternativa a aplicar una instantánea en el suscriptor. La base de datos debe configurarse para que solo admita suscripciones de extracción. Los usuarios que tengan los permisos adecuados pueden realizar copias de la base de datos de suscripciones y, a continuación, enviar por correo electrónico, copiar o transportar el archivo de suscripción (.msf) a otro suscriptor, donde se pueden adjuntar como una suscripción.

El tamaño de la base de datos de suscripciones que se va a copiar debe ser inferior a 2 gigabytes (GB).

sp_copysubscription solo se admite para las bases de datos con suscripciones de cliente y no se puede ejecutar cuando la base de datos tiene suscripciones de servidor.

Permisos

Solo los miembros del rol fijo de servidor sysadmin pueden ejecutar sp_copysubscription.