您的位置:首页 - 教程 - Sql Server - 正文
SQL Server数据库的兼容级别和命名规则
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。如图:兼容级别有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 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 }

参考:

当兼容级别为100以上时,数据库的命名规则为:
名字长度不能超过128个字符,本地临时表的名称不能超过116个字符。
名称的第一个字符必须是英文字母,中文(或其他语言的阿字母)、下划线、@或#符号。
除第一个字符之外的其他字符,还可以包括数字和$符号。
名称中间不允许有空格或其他特殊字符。
名称不能是保留字。

由于在T-SQL中,@表示局部变量,@@表示全局变量,##表示全局临时对象,所以不建议使用这些字符作为数据库的名称的开头。虽然在SQL Server 2012中保留字区分大小写,但不建议使用改过大小写的保留字来作为数据库名。

评论: