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
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.
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).
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
Execute sp_helpmergepublication. Com relação a @publication, especifique o nome da publicação existente.
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.
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.
(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'AdventureWorks';
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 AdventureWorks 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