Teilen über


sp_copysubscription (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Kopiert eine Abonnementdatenbank, die Pullabonnements, aber keine Pushabonnements enthält. Es können nur einzelne Dateidatenbanken kopiert werden. Diese gespeicherte Prozedur wird beim Abonnenten in der Abonnementdatenbank ausgeführt.

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Für Mergeveröffentlichungen, die mithilfe von parametrisierten Filtern partitioniert werden, ist es empfehlenswert, die neuen Funktionen von partitionierten Momentaufnahmen zu verwenden. Diese vereinfachen die Initialisierung zahlreicher Abonnements. Weitere Informationen finden Sie unter Erstellen einer Momentaufnahme für eine Mergeveröffentlichung mit parametrisierten Filtern. Für Publikationen, die nicht partitioniert sind, können Sie ein Abonnement mit einer Sicherung initialisieren. Weitere Informationen finden Sie unter Initialize a Transactional Subscription Without a Snapshotinitialisiert wird.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @filename = ] N'filename'

Die Zeichenfolge, die den vollständigen Pfad einschließlich des Dateinamens angibt, in dem eine Kopie der Datendatei (.mdf) gespeichert wird. @filename ist nvarchar(260), ohne Standard.

[ @temp_dir = ] N'temp_dir'

Der Name des Verzeichnisses, das die temporären Dateien enthält. @temp_dir ist "nvarchar(260)" mit der Standardeinstellung "NULL. Wenn NULLdas SQL Server-Standarddatenverzeichnis verwendet wird. Das Verzeichnis sollte über ausreichenden Speicherplatz verfügen, um eine Datei aufzunehmen, die der Größe aller Datenbankdateien auf dem Abonnenten zusammen entspricht.

[ @overwrite_existing_file = ] overwrite_existing_file

Ein optionales boolesches Flag, das angibt, ob eine vorhandene Datei mit demselben Namen überschrieben werden soll, der in @filename angegeben ist. @overwrite_existing_file ist bit, mit einem Standardwert von 0.

  • If 1, it overwrites the file specified by @filename, if it exists.
  • Wenn 0die gespeicherte Prozedur fehlschlägt, wenn die Datei vorhanden ist und die Datei nicht überschrieben wird.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_copysubscription wird in allen Replikationstypen verwendet, um eine Abonnementdatenbank als Alternative zum Anwenden einer Momentaufnahme beim Abonnenten in eine Datei zu kopieren. Die Datenbank muss so konfiguriert werden, dass nur Pullabonnements unterstützt werden. Benutzer, die über entsprechende Berechtigungen verfügen, können Kopien der Abonnementdatenbank erstellen und dann E-Mail, Kopie oder Transport der Abonnementdatei (.msf) an einen anderen Abonnenten senden, wo sie dann als Abonnement angefügt werden kann.

Die Größe der kopierten Abonnementdatenbank muss weniger als 2 Gigabyte (GB) betragen.

sp_copysubscription wird nur für Datenbanken mit Clientabonnements unterstützt und kann nicht ausgeführt werden, wenn die Datenbank Über Serverabonnements verfügt.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin können ausgeführt werden sp_copysubscription.