SQL Server数据库的兼容级别:错误;找不到xxxx对象

时间:2024-03-30 07:58:31

出现的错误:“找不到【openjson】对象”,后来发现是由于数据库版本的兼容性造成的,该对象是sql 2016新出的

 

SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。

Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

这次何问起收集了一些SQL Server数据库的兼容级别和命名规则的内容分享给大家。这个一道相关的练习题:http://hovertree.com/tiku/bjag/evktshym.htm

随着时间的推移,Sql Server发布有不少版本,如2000、2005、2008、2008R2、2012、2014、2016等。比如HoverTreeTop项目最开始用的是Sql Server 2008。那么2008的兼容级别是什么呢?答案是100。如图:

SQL Server数据库的兼容级别:错误;找不到xxxx对象

兼容级别有60、65、70、80、90、100、110等。兼容级别和版本号是有某种联系的。通过SSMS连接Sql servr,查看实例的版本就能知道当前SQL Server的版本号了。这里何问起收集了一个对应关系的表格:

  RTM (no SP) SP1 SP2 SP3 SP4
 SQL Server 2014
     codename Hekaton SQL14
12.00.2000.8        
 SQL Server 2012
     codename Denali
11.00.2100.60 11.00.3000.0 11.00.5058.0    
 SQL Server 2008 R2
     codename Kilimanjaro
10.50.160010.50.1600.1 10.50.2500.0
or 10.51.2500.0
10.50.4000.0
or 10.52.4000.0
   
 SQL Server 2008
     codename Katmai
10.00.1600.22 10.00.2531.0 10.00.4000.0 10.00.5500.0  
SQL Server 2005
     codename Yukon
9.00.1399.06 9.00.2047 9.00.3042 9.00.4035 9.00.5000
 SQL Server 2000
     codename Shiloh
8.00.194 8.00.384 8.00.532 8.00.760 8.00.2039
 SQL Server 7.0
     codename Sphinx



Sql Server 7.0使用70级别,Sql Server 2000使用80级别,Sql Server 2005使用90级别,Sql Server 2008使用100级别,Sql Server 2012使用110级别。如下表:

SQL Server数据库的兼容级别:错误;找不到xxxx对象

另外何问起要说的是Sql Server 2016的兼容级别是130,Sql Server 2017的兼容级别是140。

若要设置与指定的 Microsoft SQL Server 早期版本兼容的特定数据库行为,请使用 ALTER DATABASE SET COMPATIBILITY_LEVEL。兼容级别只影响指定数据库中的行为,而不会影响整个服务器上的行为。

在 SQL Server 的早期版本中,sp_dbcmptlevel 用于设置兼容级别。不推荐使用 sp_dbcmptlevel。

COMPATIBILITY_LEVEL { 140 | 130 | 120 | 110 | 100 | 90 | 80 }

参考:

SQL Server数据库的兼容级别:错误;找不到xxxx对象

转载自:https://www.cnblogs.com/sosoft/archive/2017/07/08/sqljrjb.html