Définir le niveau de compatibilité pour les publications de fusion

S'applique à : SQL Server

Cette rubrique décrit comment définir le niveau de compatibilité pour les publications de fusion dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL. La réplication de fusion utilise le niveau de compatibilité de publication pour déterminer les fonctionnalités qui peuvent être utilisées par des publications dans une base de données particulière.

Dans cette rubrique

Utilisation de SQL Server Management Studio

Définir le niveau de compatibilité sur la page Types d'abonnés de l'Assistant Nouvelle publication. Pour plus d'informations sur l'accès à cet Assistant, consultez Create a Publication. Après la création d'un instantané de publication, le niveau de compatibilité peut être augmenté, mais il ne peut pas être diminué. Augmentez le niveau de compatibilité dans la page Général de la boîte de dialogue Propriétés de la publication - <Publication>. Pour plus d'informations sur l'accès à cette boîte de dialogue, consultez Afficher et modifier les propriétés d’un serveur de publication. Si vous augmentez le niveau de compatibilité de la publication, tous les abonnements existants sur les serveurs exécutant des versions antérieures au niveau de compatibilité ne peuvent plus se synchroniser.

Remarque

Le niveau de compatibilité ayant des implications sur d'autres propriétés de la publication et sur la détermination de la validité des propriétés des articles, ne modifiez pas le niveau de compatibilité ni d'autres propriétés dans la boîte de dialogue. L'instantané pour la publication doit être régénéré après la modification de la propriété.

Pour définir le niveau de compatibilité de la publication

  • Sur la page Types d'abonnés de l'Assistant Nouvelle publication, sélectionnez les types d'abonnés que la publication doit prendre en charge.

Pour augmenter le niveau de compatibilité de la publication

  • Dans la page Général de la boîte de dialogue Propriétés de la publication - <Publication>, sélectionnez Niveau de compatibilité.

Utilisation de Transact-SQL

Le niveau de compatibilité d'une publication de fusion peut être défini par programme au moment de la création d'une publication ou être modifié par programme ultérieurement. Vous pouvez utiliser des procédures stockées de réplication pour définir ou modifier cette propriété de publication.

Pour définir le niveau de compatibilité d'une publication de fusion

  1. Sur le serveur de publication, exécutez sp_addmergepublication (Transact-SQL), en spécifiant une valeur pour @publication_compatibility_level afin de rendre la publication compatible avec des versions antérieures de Microsoft SQL Server. Pour plus d’informations, voir Create a Publication.

Pour modifier le niveau de compatibilité d'une publication de fusion

  1. Exécutez sp_changemergepublication (Transact-SQL), en spécifiant publication_compatibility_level pour @property et le niveau de compatibilité de publication approprié pour @value.

Pour déterminer le niveau de compatibilité d'une publication de fusion

  1. Exécutez sp_helpmergepublication (Transact-SQL), en spécifiant la publication souhaitée.

  2. Recherchez le niveau de compatibilité de la publication dans la colonne backward_comp_level du jeu de résultats.

Exemples (Transact-SQL)

Cet exemple crée une publication de fusion et définit son niveau de compatibilité.

-- 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

Cet exemple modifie le niveau de compatibilité d'une publication de fusion

Remarque

La modification du niveau de compatibilité de la publication peut être interdite si la publication utilise une fonctionnalité qui requiert un niveau de compatibilité particulier. Pour plus d’informations, consultez Compatibilité descendante de la réplication.

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  
  

Cet exemple retourne le niveau de compatibilité actuel de la publication de fusion

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
EXEC sp_helpmergepublication
    @publication = @publication;
GO