Partage via


sp_copysubscription (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Copie une base de données d’abonnement qui extrait les abonnements, mais aucun abonnement Push. Seules les bases de données monofichier peuvent être copiées. Cette procédure stockée est exécutée sur la base de données d'abonnement de l'Abonné.

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Dans le cas des publications de fusion partitionnées par le biais de filtres paramétrés, nous vous recommandons d'utiliser plutôt les nouvelles fonctionnalités d'instantanés partitionnés qui simplifient l'initialisation de larges volumes d'abonnements. Pour plus d'informations, voir Créer un instantané d’une publication de fusion avec des filtres paramétrés. Pour les publications qui ne sont pas partitionnés, vous pouvez initialiser un abonnement avec une sauvegarde. Pour plus d’informations, consultez Initialiser un abonnement transactionnel sans instantané.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @filename = ] N’filename'

Chaîne qui spécifie le chemin d’accès complet, y compris le nom de fichier, dans lequel une copie du fichier de données (.mdf) est enregistrée. @filename est nvarchar(260), sans valeur par défaut.

[ @temp_dir = ] N’temp_dir'

Nom du répertoire qui contient les fichiers temporaires. @temp_dir est nvarchar(260), avec la valeur par défaut NULL. Si NULL, le répertoire de données par défaut DE SQL Server est utilisé. Le répertoire doit contenir suffisamment d'espace pour stocker un fichier d'une taille équivalente à celle de tous les fichiers de bases de données d'abonnés réunis.

[ @overwrite_existing_file = ] overwrite_existing_file

Indicateur booléen facultatif qui spécifie s’il faut remplacer ou non un fichier existant du même nom spécifié dans @filename. @overwrite_existing_file est bit, avec la valeur par défaut 0.

  • Si 1, il remplace le fichier spécifié par @filename, s’il existe.
  • Si 0, la procédure stockée échoue si le fichier existe et que le fichier n’est pas remplacé.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

sp_copysubscription est utilisé dans tous les types de réplication pour copier une base de données d’abonnement dans un fichier comme alternative à l’application d’un instantané sur l’Abonné. La base de données doit être configurée pour prendre uniquement en charge les abonnements par extraction. Les utilisateurs disposant d’autorisations appropriées peuvent effectuer des copies de la base de données d’abonnement, puis par courrier électronique, copier ou transporter le fichier d’abonnement (.msf) vers un autre Abonné, où il peut ensuite être attaché en tant qu’abonnement.

La taille de la base de données d'abonnement copiée doit être inférieure à 2 gigaoctets (Go).

sp_copysubscription est uniquement pris en charge pour les bases de données avec des abonnements clients et ne peut pas être exécuté lorsque la base de données possède des abonnements serveur.

autorisations

Seuls les membres du rôle serveur fixe sysadmin peuvent s’exécuter.sp_copysubscription