Partilhar via


Como configurar uma publicação para permitir a sincronização da Web (Programação Transact-SQL de replicação)

Esse tópico descreve a primeira etapa da configuração da sincronização da Web para replicação de mesclagem. Para uma visão geral do processo de configuração, consulte Como configurar a sincronização da Web para replicação de mesclagem (Programação Transact-SQL de replicação). Após concluir os procedimentos deste tópico, passe para a segunda etapa, configurando o computador que executa o IIS (Internet Information Services) da Microsoft . Essa segunda etapa é descrita em Como configurar o IIS para sincronização da Web.

Esse tópico descreve os parâmetros necessários à sincronização da Web. Para obter mais informações sobre como criar publicações, consulte Como criar uma publicação (Programação Transact-SQL de replicação).

Para configurar uma nova publicação

  1. No Publicador, execute sp_addmergepublication. Com relação a @publication, especifique o nome da publicação e, com relação a @allow_web_synchronization, especifique um valor de true. Especifique outros parâmetros. Se os Assinantes se conectarem ao Publicador apenas por HTTP, especifique também um valor true para @allow_anonymous.

  2. No Publicador, para adicionar um trabalho do Snapshot Agent a essa publicação, execute sp_addpublication_snapshot. Para obter mais informações, consulte Como criar uma publicação (Programação Transact-SQL de replicação).

  3. Defina artigos para a nova publicação. Para obter mais informações, consulte Como definir um artigo (Programação Transact-SQL de replicação).

Para configurar uma publicação existente

  1. Execute sp_helpmergepublication. Com relação a @publication, especifique o nome da publicação existente.

  2. Se o valor de allow_web_synchronization no conjunto de resultados estiver definido como 1, a sincronização da Web já estará configurada para a publicação. Se o valor de allow_web_synchronization no conjunto de resultados estiver definido como 0, a sincronização da Web precisará ser habilitada.

  3. Execute sp_changemergepublication. Com relação a @publication, especifique o nome da publicação existente; com relação a @property, especifique o valor allow_web_synchronization, e com relação a @value, especifique o valor true.

  4. (Opcional) Se os Assinantes se conectarem ao Publicador apenas por HTTP, execute sp_changemergepublication. Com relação a @publication, especifique o nome da publicação existente; com relação a @property, especifique o valor allow_anonymous, e com relação a @value, especifique o valor true.

Exemplo

O exemplo a seguir cria uma publicação habilitada para sincronização da 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