SQL Azure兼容级别

时间:2012-05-20 23:11:31

标签: azure-sql-database sql-server-2012

我认为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中做到这一点。有人建议尝试一下吗?或者让我知道它现在是不是可能吗?

2 个答案:

答案 0 :(得分:2)

很难说当前的SQL Azure是基于SQL Server 2008还是2012,但是2011年11月更新从SQL Server 2008和2012中为它添加了许多新功能。有关数据库引擎版本的更多信息:

更新引擎版本:此版本将基础SQL Azure数据库引擎版本从11.0.1477.26更新为11.0.1750.34,因为它是跨数据中心推出的。

以下链接讨论SQL Azure与SQL Server 2008和SQL Server 2008 R2的比较和不支持的内容:

http://msdn.microsoft.com/en-us/library/windowsazure/ff394115

以下链接添加了有关SQL Server 2012中SQL Azure中添加了哪些新的可编程性增强功能的更多信息:

http://msdn.microsoft.com/en-us/library/windowsazure/hh987034.aspx

答案 1 :(得分:2)

更新:2015年8月 Azure Sql Database V12的默认兼容级别为120,使用ALTER DATABASE SET COMPATIBILITY_LEVEL语法可以达到130或更低。