如何:設定發行集來允許 Web 同步處理 (複寫 Transact-SQL 程式設計)
本主題將描述設定合併式複寫的 Web 同步處理時所採取的第一個步驟。如需組態程序的概觀,請參閱<如何:為合併式複寫設定 Web 同步處理 (複寫 Transact-SQL 程式設計)>。在完成本主題的程序之後,請繼續執行第二個步驟,即設定執行 Microsoft Internet Information Services (IIS) 的電腦。第二個步驟會在<如何:設定 Web 同步處理的 IIS>中描述。
本主題將描述 Web 同步處理所需的參數。如需有關如何建立發行集的詳細資訊,請參閱<如何:建立發行集 (複寫 Transact-SQL 程式設計)>。
設定新的發行集
在發行者端,執行sp_addmergepublication。為 @publication 指定發行集的名稱,並為 @allow_web_synchronization 指定 true 的值。指定任何其他參數。如果訂閱者只會透過 HTTP 連接到發行者,也要為 @allow_anonymous 指定 true 的值。
在發行者上,若要為此發行集加入快照集代理程式作業,請執行 sp_addpublication_snapshot。如需詳細資訊,請參閱<如何:建立發行集 (複寫 Transact-SQL 程式設計)>。
為這個新的發行集定義發行項。如需詳細資訊,請參閱<如何:定義發行項 (複寫 Transact-SQL 程式設計)>。
設定現有的發行集
執行 sp_helpmergepublication。針對 @publication 指定現有發行集的名稱。
如果結果集中 allow_web_synchronization 的值為 1,則表示已經為發行集設定 Web 同步處理。如果結果集中 allow_web_synchronization 的值為 0,則表示必須啟用 Web 同步處理。
執行 sp_changemergepublication。針對 @publication 指定現有發行集的名稱、針對 @property 指定 allow_web_synchronization 的值,並針對 @value 指定 true 的值。
(選擇性) 如果訂閱者只會透過 HTTP 連接到發行者,請執行 sp_changemergepublication。針對 @publication 指定現有發行集的名稱、針對 @property 指定 allow_anonymous 的值,並針對 @value 指定 true 的值。
範例
下列範例會建立啟用 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