Publicidad

The query uses non-ANSI outer join operators


Por Alex el 20/03/2007 , Comentar el artículo

Comparte este artículo:        




Si planeáis hacer una migración de SQL Server 2000 a SQL Server 2005 tener en cuenta que hay algunas características que pueden no funcionar del todo correctamente, como es el caso de "*=" or "=*" en las sentencias sql.


Si tenéis stored procedures que hacen los joins con ese formato os encontrares con el siguiente error:

Msg 4147, Level 15, State 1, Procedure sp_procedure, Line 8
The query uses non-ANSI outer join operators ("*=" or "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes.


Hay dos formas de arreglar este problema, una y obvia es codificar todas nuestras stored procedures con LEFT, RIGHT, OUTER JOIN pero a lo mejor son muchas, en este caso podemos poner la base de datos en compatibilidad con SQL Server 2005 de la siguiente forma:

sp_dbcmptlevel 'BASE DE DATOS', '80'

Recordar que los modos de compatibilidad son:
  • 70 = SQL Server 7.0
  • 80 = SQL Server 2000
  • 90 = SQL Server 2005

    Saludos
    Alex


    Si te ha gustado el artículo compartelo en:        


    Publicidad


    Añadir un comentarios:

    Nombre:
    Email: (no se publica el email)




  • SIGUENOS EN

    ARCHIVO

    Publicidad

    .