com.microsoft.sqlserver.jdbc.SQLServerException: 此查询使用的不是 ANSI 外部联接运算符(“*=” 或 “=*”)。若要不进行修改即运行此查询,请使用存储过程 sp_dbcmptlevel 将当前数据库的

  • Post author:
  • Post category:其他


com.microsoft.sqlserver.jdbc.SQLServerException: 此查询使用的不是 ANSI 外部联接运算符(“*=” 或 “=*”)。若要不进行修改即运行此查询,请使用存储过程 sp_dbcmptlevel 将当前数据库的兼容级别设置为 80 或更低。极力建议使用 ANSI 外部联接运算符(LEFT OUTER JOIN、RIGHT OUTER JOIN)重写此查询。在将来的 SQL Server 版本中,即使在向后兼容模式下,也不支持非 ANSI 联接运算符。

Sql代码




  1. EXEC



    sp_dbcmptlevel


    ‘库名’


    ,


    ’80’


    ;
  2. GO
EXEC sp_dbcmptlevel '库名', '80';
GO

原来在SQL语句中出现 *= (左链接)和 =*(右连接)的表示,但是这两种表示方法在sql2005之前的T_SQL版本中是不支持的。把出现的 *= 改成 left jon on ,=*改成 right join on 就行了。如下:

Sql代码




  1. select



    *



    from



    test1 a, test2 b



    where



    ( a.id *= b.id )



  2. select



    *



    from



    test1 a


    left




    join


    test2 b



    on



    a.id=b.id