本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中设置合并发布的兼容级别。 合并复制使用发布兼容性级别来确定给定数据库中的发布可以使用哪些功能。
本主题内容
若要设置合并发布的兼容性级别,请使用:
使用 SQL Server Management Studio
在新发布向导的 “订阅服务器类型 ”页上设置兼容性级别。 有关访问此向导的详细信息,请参阅 “创建发布”。 创建发布快照后,可以增加兼容性级别,但不能减少。 在“发布属性 - <发布>”对话框的“常规”页上增加兼容性级别。 有关访问此对话框的详细信息,请参阅 “查看和修改发布属性”。 当您提高发布兼容性级别时,运行低于该兼容性级别版本的服务器上的任何现有订阅将无法继续同步。
注释
由于兼容性级别对其他发布属性和文章属性的有效性有影响,请不要在使用该对话框时同时更改兼容性级别和其他属性。 更改属性后,应重新生成发布的快照。
设置发布兼容性级别
- 在“新建发布向导”的 “订阅服务器类型 ”页上,选择发布应支持的订阅服务器类型。
提高发布兼容性级别
- 在“发布属性 - <发布>”对话框的“常规”页上,选择“兼容性”级别。
使用 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'AdventureWorks2012';
SET @publication = N'AdvWorksSalesOrdersMerge'
SET @login = $(Login);
SET @password = $(Password);
-- Create a new merge publication.
USE [AdventureWorks2012]
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 2012.
EXEC sp_changemergepublication
@publication = @publication,
@property = N'publication_compatibility_level',
@value = N'110RTM';
GO
此示例返回合并发布的当前发布兼容性级别。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge' ;
EXEC sp_helpmergepublication
@publication = @publication;
GO