2012-05-20 15 views
7

pensé que SQL Azure fue construido en la parte superior de SQL Server 2012, pero el nivel de compatibilidad cuando se crea una nueva base de datos es 100 (nivel de compatibilidad de SQL Server de 2008), no 110.SQL Azure nivel de compatibilidad

SELECT compatibility_level FROM sys.databases WHERE name = 'Test'; 

he intentado cambiar a 110 utilizando los dos métodos que yo sepa:

ALTER DATABASE Test SET COMPATIBILITY_LEVEL = 110; 
--> Incorrect syntax near 'SET'. 

EXEC sp_dbcmptlevel 'Test', 110; 
--> Could not find stored procedure 'sp_dbcmptlevel'. 

La razón de que esto es un problema para mí es porque SQL 2008 no admite formas de geografía que hemisferios cruz, por lo que si uno se acerca a cabo un mapa para ver el mundo y tratar de almacenar los límites del mapa, fallará. Bastante tonto ¿verdad?

pensé que esto no sería un problema en SQL Azure, ya que se ha corregido en SQL Server 2012, pero cuando intento para crear una forma que atraviesa hemisferios me sale el siguiente error:

Microsoft.SqlServer.Types.GLArgumentException: 24205: The specified input does not represent a valid geography instance because it exceeds a single hemisphere. Each geography instance must fit inside a single hemisphere. A common reason for this error is that a polygon has the wrong ring orientation. To create a larger than hemisphere geography instance, upgrade the version of SQL Server and change the database compatibility level to at least 110.

Me está diciendo que cambie el nivel de compatibilidad, ya que sabe que esto ya se ha solucionado, pero no puedo encontrar la manera de hacerlo en SQL Azure. Alguien tiene una sugerencia de algo para probar? O hágamelo saber si simplemente no es posible en este momento?

+1

¿Logró encontrar una solución para esto? Obtengo exactamente el mismo problema del hemisferio ... – mcintyre321

Respuesta

2

Es difícil decir si la corriente de SQL Azure se basa en SQL Server 2008 o 2012, sin embargo, de noviembre de 2011 Actualización añade un montón de nuevas características a la misma desde SQL Server 2008 y 2012. Más información sobre el motor de base de Versiones:

Versión de motor actualizada: esta versión actualiza la versión subyacente del motor de base de datos de SQL Azure de 11.0.1477.26 a 11.0.1750.34 a medida que se implementa en los centros de datos.

el siguiente enlace habla de lo que es y lo que no es compatible con SQL Azure comparativo para SQL Server 2008 y SQL Server 2008 R2:

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

Los siguientes enlaces añade más información sobre qué nuevas mejoras de programabilidad son añadido en SQL Azure desde SQL Server 2012:

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

+0

Esto se acerca pero realmente no responde la pregunta ... –

+0

+1 Creo que responde bastante bien la pregunta. El motor de la base de datos es la versión 11, el nivel de compatibilidad es 100. Según el segundo enlace, puede ver que obtiene las características de consulta de SQL 2012, como OFFSET/FETCH. Sin embargo, parece que si confía en algo que está en el nivel de compatibilidad 110, no lo obtendrá (sin embargo, Microsoft está haciendo grandes mejoras a menudo en Azure). – Paul

2

ACTUALIZACIÓN: August el año 2015 de SQL Azure V12 base de datos tiene ad nivel de compatibilidad predeterminado de 120 con la posibilidad de subir hasta 130 o disminuir utilizando la sintaxis ALTER DATABASE SET COMPATIBILITY_LEVEL.