Definir o nível de compatibilidade para publicações de fusão

Aplica-se a: SQL Server

Este tópico descreve como definir o nível de compatibilidade para publicações de fusão no SQL Server utilizando o SQL Server Management Studio ou Transact-SQL. A replicação por fusão utiliza o nível de compatibilidade de publicações para determinar quais as funcionalidades que podem ser usadas por publicações numa dada base de dados.

Usando o SQL Server Management Studio

Defina o nível de compatibilidade na página Tipos de Assinantes do Assistente de Novas Publicações. Para mais informações sobre como aceder a este assistente, consulte Criar uma Publicação. Após a criação de um snapshot de publicação, o nível de compatibilidade pode ser aumentado, mas não pode ser diminuído. Aumente o nível de compatibilidade na página Geral da caixa de diálogo Propriedades de Publicação - <Publicação> . Para mais informações sobre como aceder a esta caixa de diálogo, consulte Visualizar e Modificar Propriedades de Publicação. Se aumentar o nível de compatibilidade de publicações, quaisquer subscrições existentes em servidores que executem versões anteriores ao nível de compatibilidade deixarão de conseguir sincronizar.

Note

Como o nível de compatibilidade tem implicações para outras propriedades de publicação e para as quais propriedades do artigo são válidas, não altere o nível de compatibilidade e outras propriedades na mesma utilização da caixa de diálogo. O snapshot da publicação deve ser regenerado após a alteração da propriedade.

Para definir o nível de compatibilidade de publicações

  • Na página de Tipos de Assinantes do Assistente de Novas Publicações, selecione os tipos de Subscritores que a publicação deve suportar.

Para aumentar o nível de compatibilidade de publicações

  • Na página Geral da caixa de diálogo Propriedades de Publicação - <Publicação> , selecione o nível de Compatibilidade.

Usando Transact-SQL

O nível de compatibilidade para uma publicação de fusão pode ser definido programaticamente quando uma publicação é criada ou modificado programaticamente numa data posterior. Pode usar procedimentos armazenados de replicação para definir ou alterar esta propriedade de publicação.

Para definir o nível de compatibilidade de publicações para uma publicação de fusão

  1. No Publicador, execute sp_addmergepublication (Transact-SQL), especificando um valor para @publication_compatibility_level de modo a tornar a publicação compatível com versões mais antigas do Microsoft SQL Server. Para mais informações, consulte Criar uma Publicação.

Para alterar o nível de compatibilidade de publicações de uma publicação de fusão

  1. Execute sp_changemergepublication (Transact-SQL), especificando publication_compatibility_level para @property e o nível de compatibilidade de publicação apropriado para @value.

Para determinar o nível de compatibilidade de publicações de uma publicação de fusão

  1. Execute sp_helpmergepublication (Transact-SQL), especificando a publicação desejada.

  2. Localize o nível de compatibilidade de publicações na coluna backward_comp_level do conjunto de resultados.

Exemplos (Transact-SQL)

Este exemplo cria uma publicação de fusão e define o nível de compatibilidade de publicações.

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

Este exemplo altera o nível de compatibilidade da publicação da fusão.

Note

Alterar o nível de compatibilidade da publicação pode não ser permitido se a publicação utilizar funcionalidades que exijam um determinado nível de compatibilidade. Para mais informações, consulte Retrocompatibilidade da replicação.

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  
  

Este exemplo devolve o nível atual de compatibilidade de publicações para a publicação da fusão.

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