sp_attachsubscription (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure
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 relative alla 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 Server1
specifica 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
.