適用対象:SQL Server
このトピックでは、SQL Server で SQL Server Management Studio または Transact-SQL を使用して、統合パブリケーションの互換性レベルを設定する方法について説明します。 マージ レプリケーションでは、パブリケーションの互換性レベルを使用して、指定されたデータベースのパブリケーションで使用できる機能を決定します。
SQL Server Management Studio を使用する
パブリケーションの新規作成ウィザードの [サブスクライバーの種類] ページで互換性レベルを設定します。 このウィザードへのアクセスの詳細については、Create a Publication を参照してください。 パブリケーション スナップショットの作成後、互換性レベルを上げることはできますが、下げることはできません。 Publication Properties - Publication ダイアログ ボックスの 全般 ページで互換性レベルを引き上げます。 このダイアログ ボックスへのアクセス方法の詳細については、「パブリケーション プロパティの表示および変更」を参照してください。 パブリケーションの互換性レベルを上げた場合、設定した互換性レベルよりも前のバージョンを実行しているサーバーでは、既存のサブスクリプションを同期できなくなります。
注
互換性レベルはパブリケーションの他のプロパティ、および有効になるアーティクルのプロパティと密接に関連しているため、互換性レベルとその他のプロパティをこのダイアログ ボックスで同時に変更しないでください。 プロパティの変更後、パブリケーションのスナップショットを再生成する必要があります。
パブリケーションの互換性レベルを設定するには
- パブリケーションの新規作成ウィザードの [サブスクライバーの種類] ページで、パブリケーションがサポートするサブスクライバーの種類を選択します。
パブリケーションの互換性レベルを上げるには
- > ページの Publication - Publication のプロパティ ダイアログ ボックスで、互換性レベル を選択します。
Transact-SQL の使用
マージ パブリケーションの互換性レベルは、パブリケーションを作成したときにプログラムで設定するか、または後でプログラムから変更できます。 レプリケーション ストアド プロシージャを使用して、このパブリケーション プロパティを設定または変更できます。
マージ パブリケーションのパブリケーション互換性レベルを設定するには
- パブリッシャーで sp_addmergepublication (Transact-SQL) を実行し、
@publication_compatibility_levelに値を指定して、パブリケーションを古いバージョンの Microsoft SQL Server と互換性のあるものにします。 詳しくは、「 パブリケーションを作成」をご覧ください。
マージ パブリケーションのパブリケーション互換性レベルを変更するには
-
sp_changemergepublication (Transact-SQL) を実行し、
@propertyには publication_compatibility_level を、@valueには適切なパブリケーション互換性レベルを指定します。
マージ パブリケーションのパブリケーション互換性レベルを確認するには
目的のパブリケーションを指定して、sp_helpmergepublication (Transact-SQL) を実行します。
結果セットの backward_comp_level 列で、パブリケーションの互換性レベルを調べます。
例 (Transact-SQL)
次の例では、マージ パブリケーションを作成して、パブリケーションの互換性レベルを設定します。
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. 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".
--Add a new merge publication.
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2022';
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @login = $(Login);
SET @password = $(Password);
-- Create a new merge publication.
USE [AdventureWorks2022];
EXEC sp_addmergepublication
@publication = @publication,
-- Set the compatibility level to SQL Server 2014.
@publication_compatibility_level = '120RTM';
-- Create the snapshot job for the publication.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password;
GO
次の例では、マージ パブリケーションのパブリケーション互換性レベルを変更します。
注
パブリケーションで特定の互換性レベルを必要とする機能を使用していると、パブリケーションの互換性レベルの変更が許可されない場合があります。 詳しくは、「レプリケーションの旧バージョンとの互換性」をご覧ください。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Change the publication compatibility level to
-- SQL Server 2008 or later.
EXEC sp_changemergepublication
@publication = @publication,
@property = N'publication_compatibility_level',
@value = N'100RTM';
GO
次の例では、マージ パブリケーションの現在のパブリケーション互換性レベルが返されます。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
EXEC sp_helpmergepublication
@publication = @publication;
GO