Procedura: Configurazione di una pubblicazione per consentire la sincronizzazione tramite il Web (programmazione Transact-SQL della replica)

In questo argomento viene descritto il primo passaggio nella configurazione della sincronizzazione tramite il Web per la replica di tipo merge. Per una panoramica del processo di configurazione, vedere Procedura: Configurazione della sincronizzazione tramite il Web per la replica di tipo merge (programmazione Transact-SQL della replica). Al termine delle procedure descritte in questo argomento, procedere al secondo passaggio, ovvero la configurazione del computer che esegue Microsoft Internet Information Services (IIS). Il secondo passaggio è descritto in Procedura: Configurazione di IIS per la sincronizzazione tramite il Web.

In questo argomento sono descritti i parametri richiesti per la sincronizzazione tramite il Web. Per ulteriori informazioni sulla procedura di creazione delle pubblicazioni, vedere Procedura: Creazione di una pubblicazione (programmazione Transact-SQL della replica).

Per configurare una nuova pubblicazione

  1. Nel server di pubblicazione eseguire sp_addmergepublication. Per @publication specificare il nome della pubblicazione e per @allow_web_synchronization specificare il valore true. Specificare eventuali altri parametri. Se i Sottoscrittori si connetteranno al server di pubblicazione solo tramite HTTP, specificare inoltre il valore true per @allow_anonymous.

  2. Nel server di pubblicazione eseguire sp_addpublication_snapshot per aggiungere un processo dell'agente snapshot per questa pubblicazione. Per ulteriori informazioni, vedere Procedura: Creazione di una pubblicazione (programmazione Transact-SQL della replica).

  3. Definire gli articoli per questa nuova pubblicazione. Per ulteriori informazioni, vedere Procedura: Definizione di un articolo (programmazione Transact-SQL della replica).

Per configurare una pubblicazione esistente

  1. Eseguire sp_helpmergepublication. Per @publication specificare il nome della pubblicazione esistente.

  2. Se il valore di allow_web_synchronization nel set di risultati è 1, la sincronizzazione tramite il Web è già configurata per la pubblicazione. Se il valore di allow_web_synchronization nel set di risultati è 0, la sincronizzazione tramite il Web deve essere attivata.

  3. Eseguire sp_changemergepublication. Per @publication specificare il nome della pubblicazione esistente, per @property, specificare il valore allow_web_synchronization e per @value specificare il valore true.

  4. (Facoltativo) Se i Sottoscrittori si connetteranno solo al server di pubblicazione tramite HTTP, eseguire sp_changemergepublication. Per @publication specificare il nome della pubblicazione esistente, per @property, specificare il valore allow_anonymous e per @value specificare il valore true.

Esempio

Nell'esempio seguente viene creata una pubblicazione attivata per la sincronizzazione tramite il Web.

-- 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".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @websyncurl AS nvarchar(256);
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
EXEC sp_addmergepublication 
    @publication = @publication,
    -- optional parameters 
    @description = N'Merge publication of AdventureWorks2008R2 using Web synchronization.',
    @publication_compatibility_level  = N'90RTM',
    -- Enable Web synchronization.
    @allow_web_synchronization = N'true',
    -- Web synchronization URL hint used by SQL Server Management Studio.
    @web_synchronization_url = @websyncurl;

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password;
GO