SQL Azure兼容级别
我认为SQL Azure是建立在SQL Server 2012之上的,但是在创建新数据库时的兼容级别是100(SQL Server 2008的兼容级别),而不是110。
SELECT compatibility_level FROM sys.databases WHERE name = 'Test';
我试着用我知道的两种方法将它改为110:
ALTER DATABASE Test SET COMPATIBILITY_LEVEL = 110;
--> Incorrect syntax near 'SET'.
EXEC sp_dbcmptlevel 'Test', 110;
--> Could not find stored procedure 'sp_dbcmptlevel'.
这对我来说是一个问题,因为SQL 2008不支持跨越半球的地理形状,所以如果缩小地图以查看世界并尝试存储地图边界,它将会失败。 非常愚蠢的权利?
我认为这不会是SQL Azure中的一个问题,因为它在SQL Server 2012中已得到修复,但是当我尝试创建穿过半球的形状时,出现以下错误:
Microsoft.SqlServer.Types.GLArgumentException:24205:指定的输入不代表有效的地理实例,因为它超过了单个半球。 每个地理实例都必须适合单个半球。 造成此错误的常见原因是多边形的环形方向错误。 要创建大于半球的地理实例,请升级SQL Server的版本并将数据库兼容级别更改为至少110。
所以它告诉我要改变兼容性级别,就像它知道这已经被修复一样,但我无法弄清楚如何在SQL Azure中做到这一点。 任何人都有想要尝试的建议? 或者让我知道现在是否不可能?
很难说现在的SQL Azure是基于SQL Server 2008还是2012年,但2011年11月的更新从SQL Server 2008和2012中为它增加了许多新功能。有关数据库引擎版本的更多信息:
更新的引擎版本:此版本将基础SQL Azure数据库引擎版本从11.0.1477.26更新到11.0.1750.34,因为它跨数据中心推出。
以下链接介绍了与SQL Server 2008和SQL Server 2008 R2相比,SQL Azure有哪些和哪些不支持的内容:
http://msdn.microsoft.com/en-us/library/windowsazure/ff394115
以下链接添加了有关SQL Server 2012在SQL Azure中添加了哪些新的Programmability增强功能的更多信息:
http://msdn.microsoft.com/en-us/library/windowsazure/hh987034.aspx
更新:2015年8月Azure Sql数据库V12的默认兼容级别为120,可能会使用ALTER DATABASE SET COMPATIBILITY_LEVEL语法升至130或更低。
链接地址: http://www.djcxy.com/p/59579.html