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