sp_addmergesubscription (Transact-SQL)
Data aggiornamento: 15 settembre 2007
Crea una sottoscrizione push o pull di tipo merge. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_addmergesubscription [ @publication= ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db= ] 'subscriber_db' ]
[ , [ @subscription_type= ] 'subscription_type' ]
[ , [ @subscriber_type= ] 'subscriber_type' ]
[ , [ @subscription_priority= ] subscription_priority ]
[ , [ @sync_type= ] 'sync_type' ]
[ , [ @frequency_type= ] frequency_type ]
[ , [ @frequency_interval= ] frequency_interval ]
[ , [ @frequency_relative_interval= ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]
[ , [ @frequency_subday= ] frequency_subday ]
[ , [ @frequency_subday_interval= ] frequency_subday_interval ]
[ , [ @active_start_time_of_day= ] active_start_time_of_day ]
[ , [ @active_end_time_of_day= ] active_end_time_of_day ]
[ , [ @active_start_date= ] active_start_date ]
[ , [ @active_end_date= ] active_end_date ]
[ , [ @optional_command_line= ] 'optional_command_line' ]
[ , [ @description= ] 'description' ]
[ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]
[ , [ @offloadagent= ] remote_agent_activation]
[ , [ @offloadserver= ] 'remote_agent_server_name' ]
[ , [ @use_interactive_resolver= ] 'use_interactive_resolver' ]
[ , [ @merge_job_name= ] 'merge_job_name' ]
[ , [ @hostname = ] 'hostname'
Argomenti
- [ @publication=] 'publication'
Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito. La pubblicazione deve essere già esistente.
- [ @subscriber =] 'subscriber'
Nome del Sottoscrittore. subscriber è di tipo sysname e il valore predefinito è NULL.
- [ @subscriber_db=] 'subscriber_db'
Nome del database di sottoscrizione. subscriber_dbè di tipo sysname e il valore predefinito è NULL.
[ @subscription_type=] 'subscription_type'
Tipo di sottoscrizione. subscription_typeè di tipo nvarchar(15) e il valore predefinito è PUSH. Se è push, viene aggiunta una sottoscrizione push e l'agente di merge viene aggiunto al server di distribuzione. Se è pull, viene aggiunta una sottoscrizione pull senza aggiungere un agente di merge al server di distribuzione.[!NOTA] Con le sottoscrizioni anonime non è necessario utilizzare questa stored procedure.
[ @subscriber_type=] 'subscriber_type'
Tipo di Sottoscrittore. subscriber_typeè di tipo nvarchar(15). I possibili valori sono i seguenti.Valore Descrizione local (predefinito)
Sottoscrittore noto solo al server di pubblicazione.
global
Sottoscrittore noto a tutti i server.
In SQL Server 2005 le sottoscrizioni locali vengono dette sottoscrizioni client e le sottoscrizioni globali vengono dette sottoscrizioni server. Per ulteriori informazioni, vedere la sezione relativa ai tipi di sottoscrizione in Modalità di rilevamento e risoluzione dei conflitti da parte della replica di tipo merge.
- [ @subscription_priority=] subscription_priority
Numero che indica il livello di priorità della sottoscrizione. subscription_priorityè di tipo real e il valore predefinito è NULL. Per le sottoscrizioni locali e anonime, il livello di priorità è 0.0. Per le sottoscrizioni globali, la priorità deve essere inferiore a 100.0.
[ @sync_type=] 'sync_type'
Tipo di sincronizzazione per la sottoscrizione. sync_typeè di tipo nvarchar(15) e il valore predefinito è automatic. Può essere automatic o none. Se è automatic, vengono innanzitutto trasferiti nel Sottoscrittore lo schema e i dati iniziali per le tabelle pubblicate. Se è none, viene presupposto che il Sottoscrittore includa già lo schema e i dati iniziali per le tabelle pubblicate. Le tabelle e i dati di sistema vengono sempre trasferiti.[!NOTA] Non è consigliabile specificare un valore di nessuno. Per ulteriori informazioni, vedere Inizializzazione di una sottoscrizione di tipo merge senza snapshot.
[ @frequency_type=] frequency_type
Valore che indica la frequenza con cui viene eseguito l'agente di merge. frequency_type è di tipo int. I possibili valori sono i seguenti.Valore Descrizione 1
Una volta
4
Giornaliera
8
Settimanale
10
Mensile
20
Mensile, in base all'intervallo di frequenza
40
All'avvio di SQL Server Agent
NULL (predefinito)
[ @frequency_interval=] frequency_interval
Giorno o giorni in cui viene eseguito l'agente di merge. frequency_interval è di tipo int. I possibili valori sono i seguenti.Valore Descrizione 1
Domenica
2
Lunedì
3
Martedì
4
Mercoledì
5
Giovedì
6
Venerdì
7
Sabato
8
Giorno
9
Giorni feriali
10
Giorni festivi
NULL (predefinito)
[ @frequency_relative_interval=] frequency_relative_interval
Occorrenza di merge pianificata dell'intervallo di frequenza per ogni mese. frequency_relative_interval è di tipo int. I possibili valori sono i seguenti.Valore Descrizione 1
Primo
2
Secondo
4
Terzo
8
Quarto
16
Ultimo
NULL (predefinito)
- [ @frequency_recurrence_factor=] frequency_recurrence_factor
Fattore di ricorrenza utilizzato da frequency_type. frequency_recurrence_factorè di tipo int e il valore predefinito è NULL.
[ @frequency_subday=] frequency_subday
Unità di frequency_subday_interval. frequency_subday è di tipo int. I possibili valori sono i seguenti.Valore Descrizione 1
Una volta
2
Secondo
4
Minuto
8
Ora
NULL (predefinito)
- [ @frequency_subday_interval=] frequency_subday_interval
Frequenza di frequency_subday tra due operazioni di merge. frequency_subday_interval è di tipo int e il valore predefinito è NULL.
- [ @active_start_time_of_day=] active_start_time_of_day
Ora del giorno della prima esecuzione pianificata dell'agente di merge, nel formato HHMMSS. active_start_time_of_day è di tipo int e il valore predefinito è NULL.
- [ @active_end_time_of_day=] active_end_time_of_day
Ora del giorno dell'ultima esecuzione pianificata dell'agente di merge, nel formato HHMMSS. active_end_time_of_day è di tipo int e il valore predefinito è NULL.
- [ @active_start_date=] active_start_date
Data della prima esecuzione pianificata dell'agente di merge, nel formato YYYYMMDD. active_start_date è di tipo int e il valore predefinito è NULL.
- [ @active_end_date=] active_end_date
Data dell'ultima esecuzione pianificata dell'agente di merge, nel formato YYYYMMDD. active_end_date è di tipo int e il valore predefinito è NULL.
- [ @optional_command_line=] 'optional_command_line'
Riga di comando facoltativa da eseguire. optional_command_lineè di tipo nvarchar(4000) e il valore predefinito è NULL. Questo parametro viene utilizzato per aggiungere un comando per l'acquisizione e il salvataggio dell'output in un file o per specificare un file o un attributo di configurazione.
- [ @description=] 'description'
Breve descrizione della sottoscrizione di tipo merge. descriptionè di tipo nvarchar(255) e il valore predefinito è NULL. Questo valore viene visualizzato da Monitoraggio replica nella colonna Nome descrittivo, che può essere utilizzata per ordinare le sottoscrizioni per una pubblicazione monitorata.
- [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Indica se è possibile o meno sincronizzare la sottoscrizione tramite Gestione sincronizzazione Microsoft Windows. enabled_for_syncmgr è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è false, la sottoscrizione non viene registrata in Gestione sincronizzazione. Se è true, la sottoscrizione viene registrata in Gestione sincronizzazione e può essere sincronizzata senza avviare Microsoft SQL Server Management Studio.
[ @offloadagent= ] remote_agent_activation
Specifica che l'agente può essere attivato in remoto. remote_agent_activation è di tipo bit e il valore predefinito è 0.[!NOTA] Questo parametro è obsoleto ed è ancora disponibile per compatibilità con gli script di versioni precedenti.
- [ @offloadserver= ] 'remote_agent_server_name'
Nome di rete del server da utilizzare per l'attivazione remota degli agenti. remote_agent_server_nameè di tipo sysname e il valore predefinito è NULL.
- [ @use_interactive_resolver= ] 'use_interactive_resolver'
Consente l'utilizzo del sistema di risoluzione interattivo per la risoluzione dei conflitti di tutti gli articoli che supportano la risoluzione interattiva. use_interactive_resolver è di tipo nvarchar(5) e il valore predefinito è FALSE.
- [ @merge_job_name= ] 'merge_job_name'
Nome del processo dell'agente di merge che viene aggiunto per la sottoscrizione. merge_job_name è di tipo sysnamee il valore predefinito è NULL. Questo parametro consente di specificare il nome di un processo dell'agente di merge, in modo da poterlo amministrare successivamente.
[ @hostname= ] 'hostname'
Sostituisce il valore restituito da HOST_NAME quando questa funzione viene utilizzata nella clausola WHERE di un filtro con parametri. Hostname è di tipo sysname e il valore predefinito è NULL.Importante: Per motivi relativi alle prestazioni è consigliabile evitare di applicare funzioni ai nomi di colonna nelle clausole per filtri di riga con parametri, come LEFT([MyColumn]) = SUSER_SNAME()
. Se si utilizza HOST_NAME in una clausola di filtro e si sostituisce il valore di HOST_NAME, potrebbe essere necessario convertire i tipi di dati tramite CONVERT. Per ulteriori informazioni sulle procedure consigliate in questo caso, vedere la sezione relativa alla sostituzione del valore HOST_NAME() nell'argomento Filtri di riga con parametri.
Osservazioni
La stored procedure sp_addmergesubscription viene utilizzata nella replica di tipo merge.
Se sp_addmergesubscription viene eseguita da un membro del ruolo predefinito del server sysadmin per creare una sottoscrizione push, il processo dell'agente di merge viene creato in modo implicito e viene eseguito utilizzando l'account del servizio SQL Server Agent. È consigliabile eseguire la stored procedure sp_addmergepushsubscription_agent e specificare le credenziali di un account diverso di Windows specifico dell'agente per @job_login e @job_password. Per ulteriori informazioni, vedere Modello di protezione dell'agente di replica.
Autorizzazioni
Solo i membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_addmergesubscription.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Esempio
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
Vedere anche
Riferimento
sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)
Altre risorse
Procedura: Creazione di una sottoscrizione push (programmazione Transact-SQL della replica)
Procedura: Creazione di una sottoscrizione pull (programmazione Transact-SQL della replica)
Risoluzione dei conflitti interattiva
Sottoscrizione delle pubblicazioni
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
15 settembre 2007 |
|