我认为SQL Azure是在SQL Server 2012之上构建的,但是在创建新数据库时的兼容性级别是100(SQL Server 2008的兼容级别),而不是110.
SELECT compatibility_level FROM sys.databases WHERE name = 'Test';
Run Code Online (Sandbox Code Playgroud)
我尝试使用我所知道的两种方法将其更改为110:
ALTER DATABASE Test SET COMPATIBILITY_LEVEL = 110;
--> Incorrect syntax near 'SET'.
EXEC sp_dbcmptlevel 'Test', 110;
--> Could not find stored procedure 'sp_dbcmptlevel'.
Run Code Online (Sandbox Code Playgroud)
这对我来说是个问题的原因是因为SQL 2008不支持跨越半球的地理形状,因此如果缩小地图以查看世界并尝试存储地图的边界,它将失败.很傻吧?
我认为这不会是SQL Azure中的问题,因为它已在SQL Server 2012中修复,但是当我尝试创建跨越半球的形状时,我收到以下错误:
Microsoft.SqlServer.Types.GLArgumentException:24205:指定的输入不代表有效的地理实例,因为它超过了单个半球.每个地理实例必须适合单个半球.此错误的常见原因是多边形具有错误的环方向.要创建大于半球的地理实例,请升级SQL Server的版本并将数据库兼容级别更改为至少110.
所以它告诉我改变兼容性级别,就像它知道这已经修复了,但我无法弄清楚如何在SQL Azure中做到这一点.有人建议尝试一下吗?或者让我知道它现在是否可能?