Cómo configurar una publicación para que permita la sincronización web (programación de la replicación con Transact-SQL)
Este tema describe el primer paso para configurar la sincronización web para la replicación de mezcla. Para obtener información general sobre el proceso de configuración, vea Cómo configurar la sincronización web para la replicación de mezcla (programación de la replicación con Transact-SQL). Una vez terminado los procedimientos de este tema, siga con el segundo paso: configurar el equipo que está ejecutando Microsoft Internet Information Services (IIS). Este segundo paso se describe en Cómo configurar IIS para la sincronización Web.
En este tema se describen los parámetros que requiere la sincronización web. Para obtener más información acerca de cómo crear publicaciones, vea Cómo crear una publicación (programación de la replicación con Transact-SQL).
Para configurar una nueva publicación
En el Publicador, ejecute sp_addmergepublication. Para @publication, especifique el nombre de la publicación y, para @allow_web_synchronization, especifique un valor de true. Especifique cualquier otro parámetro. Si los Suscriptores sólo se van a conectar al Publicador a través de HTTP, especifique además un valor de true para @allow_anonymous.
En el Publicador, para agregar un trabajo del Agente de instantáneas para esta publicación, ejecute sp_addpublication_snapshot. Para obtener más información, vea Cómo crear una publicación (programación de la replicación con Transact-SQL).
Defina artículos para esta nueva publicación. Para obtener más información, vea Cómo definir un artículo (programación de la replicación con Transact-SQL).
Para configurar una publicación existente
Ejecute sp_helpmergepublication. Para @publication, especifique el nombre de la publicación existente.
Si el valor de allow_web_synchronization en el conjunto de resultados es 1, la sincronización web ya está configurada para la publicación. Si el valor de allow_web_synchronization en el conjunto de resultados es 0, la sincronización web debe estar habilitada.
Ejecute sp_changemergepublication. Para @publication, especifique el nombre de la publicación existente; para @property, especifique el valor allow_web_synchronization; y para @value, especifique el valor true.
(Opcional) Si los Suscriptores sólo se van a conectar al Publicador a través de HTTP, ejecute sp_changemergepublication. Para @publication, especifique el nombre de la publicación existente; para @property, especifique el valor allow_anonymous; y para @value, especifique el valor true.
Ejemplo
El ejemplo siguiente crea una publicación que está habilitada para la sincronización 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