使用存储过程sp_dbcmptlevel对SQL Server 2005调整兼容级别

发布时间:2019-12-11编辑:脚本学堂
使用存储过程sp_dbcmptlevel,可以将某些数据库行为设置为与指定的 SQL Server 的早期版本兼容。

使用存储过程sp_dbcmptlevel,可以将某些数据库行为设置为与指定的 SQL Server 的早期版本兼容。

语法
sp_dbcmptlevel [ [ @dbname = ] name ] [ , [ @new_cmptlevel = ] version ]

备注
在将数据库从 SQL Server 的任何早期版本升级到 SQL Server 2005 之后,该数据库将保留其现有的兼容级别。对于 SQL Server 2005 的所有安装,默认兼容级别均为 90。不能修改 master 数据库的兼容级别,但可以修改 model 数据库的兼容级别。这样您便可以用非默认兼容级别创建新数据库。包含索引视图的数据库的兼容级别不能更改为低于 80。 sp_dbcmptlevel 存储过程只影响指定数据库的行为,而不影响整个服务器的行为。sp_dbcmptlevel 只提供与 SQL Server 的早期版本的部分兼容性。将 sp_dbcmptlevel 用作中间迁移助手,可解决相关兼容级别设置所控制的行为之间存在的版本差异问题。如果现有 SQL Server 应用程序受到 SQL Server 2005 中的行为差异的影响,请将该应用程序进行转换,使之能正常运行。然后使用 sp_dbcmptlevel 将兼容级别更改为 90。数据库的新兼容性设置将在该数据库下次成为当前数据库(无论是在登录时作为默认数据库还是在 USE 语句中指定)时生效。

实例
将兼容级别更改为 SQL Server 2005 以下示例将 AdventureWorks 数据库的兼容级别更改为 90。

复制代码 代码如下:
EXEC sp_dbcmptlevel 'AdventureWorks', '90';
GO

所以:在2005种恢复低版本数据库时,恢复完后应该作此设定

存在的问题:
以前用的sql2000,用powerdesigner12反向生成pdm物理数据模型,一切正常,驱动调到sql2000. 最近升级数据库到sql2005,再反向时,驱动调到sql2005,但是生成时总报错:"Unable to list the   tables. [Microsoft][ODBC SQL Server Driver] 未能准备语句.SQLSTATE=37000 "。