sp_attachsubscription (Transact-SQL)

Applies to:SQL ServerAzure SQL Database

Collega un database di sottoscrizione esistente a qualsiasi Sottoscrittore. Questa stored procedure viene eseguita nel nuovo Sottoscrittore del master database.

Importante

Questa funzionalità è deprecata e verrà rimossa a partire da una delle prossime versioni. Questa funzionalità non deve essere usata nel nuovo lavoro di sviluppo. 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 di sintassi Transact-SQL

Sintassi

sp_attachsubscription
    [ @dbname = ] N'dbname'
    , [ @filename = ] N'filename'
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] N'subscriber_login' ]
    [ , [ @subscriber_password = ] N'subscriber_password' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] N'distributor_login' ]
    [ , [ @distributor_password = ] N'distributor_password' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] N'publisher_login' ]
    [ , [ @publisher_password = ] N'publisher_password' ]
    [ , [ @job_login = ] N'job_login' ]
    [ , [ @job_password = ] N'job_password' ]
    [ , [ @db_master_key_password = ] N'db_master_key_password' ]
[ ; ]

Argomenti

[ @dbname = ] N'dbname'

Specifica il nome del database di sottoscrizione di destinazione. @dbname è sysname, senza impostazione predefinita.

[ @filename = ] N'filename'

Nome e percorso fisico del file di dati primario (.mdf). @filename è nvarchar(260), senza impostazione predefinita.

[ @subscriber_security_mode = ] subscriber_security_mode

Modalità di sicurezza del Sottoscrittore da utilizzare per la connessione a un Sottoscrittore durante la sincronizzazione. @subscriber_security_mode è int, con il valore predefinito NULL.

Nota

È necessario utilizzare l'autenticazione di Windows. Se @subscriber_security_mode non 1 è (autenticazione di Windows), viene visualizzato un errore.

[ @subscriber_login = ] N'subscriber_login'

Nome di accesso del Sottoscrittore da utilizzare per la connessione a un Sottoscrittore durante la sincronizzazione. @subscriber_login è sysname, con un valore predefinito .NULL

Nota

Questo parametro è deprecato e viene mantenuto per la compatibilità con le versioni precedenti degli script. Se @subscriber_security_mode non 1 è specificato e viene specificato @subscriber_login , viene visualizzato un errore.

[ @subscriber_password = ] N'subscriber_password'

Password del Sottoscrittore. @subscriber_password è sysname, con un valore predefinito .NULL

Nota

Questo parametro è deprecato e viene mantenuto per la compatibilità con le versioni precedenti degli script. Se @subscriber_security_mode non 1 è specificato e viene specificato @subscriber_password , viene visualizzato un errore.

[ @distributor_security_mode = ] distributor_security_mode

Modalità di sicurezza da utilizzare per la connessione a un server di distribuzione durante la sincronizzazione. @distributor_security_mode è int, con il valore predefinito 1.

  • 0 specifica l'autenticazione di SQL Server
  • 1specifica autenticazione di Windows

Se possibile, usare l'autenticazione di Windows.

[ @distributor_login = ] N'distributor_login'

Account di accesso del server di distribuzione da utilizzare per la connessione a un server di distribuzione durante la sincronizzazione. @distributor_login è sysname, con un valore predefinito .NULL @distributor_login è necessario se @distributor_security_mode è impostato su 0.

[ @distributor_password = ] N'distributor_password'

Password per il server di distribuzione. @distributor_password è sysname, con il valore predefinito NULL. @distributor_password è necessario se @distributor_security_mode è impostato su 0. Il valore di @distributor_password deve essere inferiore a 120 caratteri Unicode.

Importante

Non usare una password vuota. Usare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

[ @publisher_security_mode = ] publisher_security_mode

Modalità di sicurezza da utilizzare per la connessione a un server di pubblicazione durante la sincronizzazione. @publisher_security_mode è int, con un valore predefinito .1

  • Se 0, specifica l'autenticazione di SQL Server.
  • Se 1, specifica l'autenticazione di Windows. Se possibile, usare l'autenticazione di Windows.

[ @publisher_login = ] N'publisher_login'

Account di accesso da utilizzare per la connessione a un server di pubblicazione durante la sincronizzazione. @publisher_login è sysname, con un valore predefinito .NULL

[ @publisher_password = ] N'publisher_password'

Password utilizzata per la connessione al server di pubblicazione. @publisher_password è sysname, con un valore predefinito .NULL Il valore di @publisher_password deve essere inferiore a 120 caratteri Unicode.

Importante

Non usare una password vuota. Usare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

[ @job_login = ] N'job_login'

Account di accesso per l'account di Windows con cui viene eseguito l'agente. @job_login è nvarchar(257), senza impostazione predefinita. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al server di distribuzione.

[ @job_password = ] N'job_password'

Password per l'account di Windows con cui viene eseguito l'agente. @job_password è sysname, con il valore predefinito NULL. Il valore di job_password deve essere inferiore a 120 caratteri Unicode.

Importante

Non usare una password vuota. Usare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

[ @db_master_key_password = ] N'db_master_key_password'

Password di una chiave master del database definita dall'utente (DMK). @db_master_key_password è nvarchar(524), con il valore predefinito NULL. Se non viene specificato @db_master_key_password , viene eliminato e ricreato un DMK esistente.

Importante

Non usare una password vuota. Usare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_attachsubscription viene usato nella replica snapshot, nella replica transazionale e nella replica di tipo merge.

Non è possibile associare una sottoscrizione alla pubblicazione se il periodo di conservazione della pubblicazione è scaduto. Se viene specificata una sottoscrizione con un periodo di conservazione trascorso, si verifica un errore quando la sottoscrizione è collegata o sincronizzata per la prima volta. Le pubblicazioni con un periodo di conservazione della pubblicazione di 0 (non scadono mai) vengono ignorate.

Autorizzazioni

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