Condividi tramite


sp_copysubscription (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure

Copia un database di sottoscrizione che è sottoscrizioni pull, ma non sottoscrizioni push. È possibile copiare solo database a file singolo. Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore.

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Nel caso di pubblicazioni di tipo merge partizionate mediante filtri con parametri, è consigliabile utilizzare la nuove funzionalità degli snapshot partizionati, che semplificano l'inizializzazione di un ampio numero di sottoscrizioni. Per altre informazioni, vedere Creazione di uno snapshot per una pubblicazione di tipo merge con filtri con parametri. Per le pubblicazioni non partizionate, è possibile inizializzare una sottoscrizione con un backup. Per altre informazioni, vedere Inizializzazione di una sottoscrizione transazionale senza uno snapshot.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @filename = ] N'filename'

Stringa che specifica il percorso completo, incluso il nome file, in cui viene salvata una copia del file di dati (.mdf). @filename è nvarchar(260), senza impostazione predefinita.

[ @temp_dir = ] N'temp_dir'

Nome della directory che contiene i file temporanei. @temp_dir è nvarchar(260), con il valore predefinito NULL. Se NULL, viene utilizzata la directory dei dati predefinita di SQL Server. Nella directory deve essere disponibile spazio sufficiente per l'archiviazione di un file le cui dimensioni sono pari alla somma delle dimensioni di tutti i file di database del Sottoscrittore.

[ @overwrite_existing_file = ] overwrite_existing_file

Flag booleano facoltativo che specifica se sovrascrivere o meno un file esistente con lo stesso nome specificato in @filename. @overwrite_existing_file è bit, con il valore predefinito 0.

  • Se 1, sovrascrive il file specificato da @filename, se esistente.
  • Se 0, la stored procedure ha esito negativo se il file esiste e il file non viene sovrascritto.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_copysubscription viene usato in tutti i tipi di replica per copiare un database di sottoscrizione in un file come alternativa all'applicazione di uno snapshot nel Sottoscrittore. Il database deve essere configurato per supportare solo le sottoscrizioni pull. Gli utenti che hanno le autorizzazioni appropriate possono creare copie del database di sottoscrizione e quindi inviare tramite posta elettronica, copiare o trasportare il file di sottoscrizione (.msf) in un altro Sottoscrittore, in cui può quindi essere allegato come sottoscrizione.

Le dimensioni del database di sottoscrizione copiato devono essere inferiori a 2 gigabyte (GB)

sp_copysubscription è supportato solo per i database con sottoscrizioni client e non può essere eseguito quando il database dispone di sottoscrizioni server.

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin possono eseguire sp_copysubscription.