SQL Server 2008 数据库的兼容模式

浪潮软件SQL Server 2008 数据库的兼容模式

操作系统: 数 据 库: SqlSrv 2008
软件版本: PS10.2 软件模块:
问题描述:
   SQL Server 2008 数据库的默认兼容级别是100,浪潮软件PS10在建账套时会自动把cwbase数据库的兼容级别改为80(与SQL Server 2000兼容),兼容级别的详细说明如下。
产生原因: 
解决方法:
  
兼容模式是将某些数据库设置为与指定的 SQL Server 版本兼容,以下 ALTER DATABASE 语法替换 sp_dbcmptlevel 过程来设置数据库兼容级别,也可以在Management Studio中右键打开数据库属性窗口,在选项-兼容级别中查看、更改。

语法

ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }

参数

database_name
要修改的数据库的名称。

COMPATIBILITY_LEVEL { 80 | 90 | 100 }
要使数据库与之兼容的 SQL Server 版本。该值必须为下列值之一:

80 = SQL Server 2000

90 = SQL Server 2005

100 = SQL Server 2008
示例:

以下示例将 cwbase1 数据库的兼容级别更改为 90(SQL Server 2005):

ALTER DATABASE cwbase1 SET COMPATIBILITY_LEVEL = 90
go

注释

对于所有 SQL Server 2008 安装,默认的兼容级别都为 100。除非 model 数据库有更低的兼容级别,否则 SQL Server 2008 中创建的数据库会设置为该级别。在将数据库从 SQL Server 的任何早期版本升级到 SQL Server 2008 时,如果数据库的兼容级别不在 80 以下,则该数据库将保留其现有的兼容级别。升级兼容级别低于 80 的数据库会将数据库的兼容级别设置为 80。这既适用于系统数据库也适用于用户数据库。使用 ALTER DATABASE 可更改数据库的兼容级别。若要查看数据库的当前兼容级别,请查询 sys.databases 目录视图中的 compatibility_level 列。

利用兼容级别获得向后兼容
兼容级别只影响指定数据库的行为,而不影响整个服务器的行为。兼容级别只实现与 SQL Server 的早期版本保持部分向后兼容。通过将兼容级别用作临时性的迁移辅助工具,可解决相关兼容级别设置控制的行为之间存在的版本差异问题。如果现有 SQL Server 应用程序受到 SQL Server 2008 中行为差异的影响,请对该应用程序进行转换,使之能正常运行。然后使用 ALTER DATABASE 将兼容级别更改为 100。数据库的新兼容性设置将在该数据库下次成为当前数据库(无论是在登录时作为默认数据库还是在 USE 语句中指定)时生效。

SET 选项
新功能可以在旧的兼容级别下正常运行,但是可能需要调整 SET 选项。例如,在兼容级别 80 下使用 xml 数据类型需要相应的 ANSI SET 选项。此外,当数据库兼容级别设置为 90 或更高时,如果将 ANSI_WARNINGS 设置为 ON,则会隐式地将 ARITHABORT 设置为 ON。如果将数据库兼容级别设置为 80,则必须将 ARITHABORT 选项显式设置为 ON。有关详细信息,请参阅影响结果的 SET 选项。

兼容级别和存储过程
执行某一存储过程时,该存储过程将使用定义它的数据库的当前兼容级别。在更改某一数据库的兼容性设置时,该数据库的所有存储过程都将随之自动重新编写。

原创文章,转载请注明: 转载自浪潮888博客

本文链接地址: SQL Server 2008 数据库的兼容模式

文章的脚注信息由WordPress的wp-posturl插件自动生成



This entry was posted in 浪潮文档. Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>