共用方式為


如何:設定發行集來允許 Web 同步處理 (複寫 Transact-SQL 程式設計)

本主題將描述設定合併式複寫的 Web 同步處理時所採取的第一個步驟。如需組態程序的概觀,請參閱<如何:為合併式複寫設定 Web 同步處理 (複寫 Transact-SQL 程式設計)>。在完成本主題的程序之後,請繼續執行第二個步驟,即設定執行 Microsoft Internet Information Services (IIS) 的電腦。第二個步驟會在<如何:設定 Web 同步處理的 IIS>中描述。

本主題將描述 Web 同步處理所需的參數。如需有關如何建立發行集的詳細資訊,請參閱<如何:建立發行集 (複寫 Transact-SQL 程式設計)>。

設定新的發行集

  1. 在發行者端,執行sp_addmergepublication。為 @publication 指定發行集的名稱,並為 @allow_web_synchronization 指定 true 的值。指定任何其他參數。如果訂閱者只會透過 HTTP 連接到發行者,也要為 @allow_anonymous 指定 true 的值。

  2. 在發行者上,若要為此發行集加入快照集代理程式作業,請執行 sp_addpublication_snapshot。如需詳細資訊,請參閱<如何:建立發行集 (複寫 Transact-SQL 程式設計)>。

  3. 為這個新的發行集定義發行項。如需詳細資訊,請參閱<如何:定義發行項 (複寫 Transact-SQL 程式設計)>。

設定現有的發行集

  1. 執行 sp_helpmergepublication。針對 @publication 指定現有發行集的名稱。

  2. 如果結果集中 allow_web_synchronization 的值為 1,則表示已經為發行集設定 Web 同步處理。如果結果集中 allow_web_synchronization 的值為 0,則表示必須啟用 Web 同步處理。

  3. 執行 sp_changemergepublication。針對 @publication 指定現有發行集的名稱、針對 @property 指定 allow_web_synchronization 的值,並針對 @value 指定 true 的值。

  4. (選擇性) 如果訂閱者只會透過 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'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