如何设置合并发布的兼容级别(复制 Transact-SQL 编程)
合并发布的兼容级别可在创建发布时以编程方式进行设置,或可稍后以编程方式进行修改。 可使用复制存储过程来设置或更改此发布属性。 有关发布兼容级别和相关限制及要求的详细信息,请参阅在复制拓扑中使用 SQL Server 的多个版本主题中的“合并发布的兼容级别”部分。
设置合并发布的发布兼容级别
- 在发布服务器上,执行 sp_addmergepublication (Transact-SQL),同时为 @publication_compatibility_level 指定值,以使该发布与 Microsoft SQL Server 的早期版本兼容。 有关详细信息,请参阅如何创建发布(复制 Transact-SQL 编程)。
更改合并发布的发布兼容级别
- 执行 sp_changemergepublication (Transact-SQL),同时将 publication_compatibility_level 指定给 @property,并为 @value 指定相应的发布兼容级别。
确定合并发布的发布兼容级别
执行 sp_helpmergepublication (Transact-SQL),同时指定所需的发布。
在结果集的 backward_comp_level 列中找到发布兼容级别。
示例
该示例创建合并发布并设置发布兼容级别。
-- 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'AdventureWorks2008R2';
SET @publication = N'AdvWorksSalesOrdersMerge'
SET @login = $(Login);
SET @password = $(Password);
-- Create a new merge publication.
USE [AdventureWorks2008R2]
EXEC sp_addmergepublication
@publication = @publication,
-- Set the compatibility level to SQL Server 2000 SP3.
@publication_compatibility_level = '80RTM';
-- 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 2005.
EXEC sp_changemergepublication
@publication = @publication,
@property = N'publication_compatibility_level',
@value = N'90RTM'
GO
该示例返回合并发布的当前发布兼容级别。
DECLARE @publication AS sysname
SET @publication = N'AdvWorksSalesOrdersMerge'
EXEC sp_helpmergepublication
@publication = @publication;
GO