日期:2014-05-17  浏览次数:20605 次

SQL2000与SQL2005/SQL2008语句兼容问题,求救!!!
如: select A.*,字段名=B.name from Table1 A join Table2 B on A.ID=B.ID order by A.字段名  
此语句在SQL2000下执行能通过,在sql2005及sql2008里无法通过,提示:消息 207,级别 16,状态 1,第 1 行
列名 '字段名' 无效。

我程序里所有排序语句都是这样写的.升级到sql2005或sql2008后就无法使用了.求高手告诉我是否可在sql数据库里设置sql2005或sql2008能兼容此语句...谢谢!!!

------解决方案--------------------
select A.*,字段名=B.name from Table1 A join Table2 B on A.ID=B.ID order by A.字段名

看差了,这里,如果表table1没有  [字段名]  这个列,那就不能放order by后,如果要按别名 [字段名] 排序,直接 order by B.name 就行。
------解决方案--------------------
select A.*,字段名=B.name 
 from Table1 A join Table2 B on A.ID=B.ID 
 order by A.字段名---A表里有字段名这一列?

------解决方案--------------------
引用:
临时解决方法找到了:
对着数据库名点右键-属性-选项-兼容级别-SQL Server 2000 (80)
重启SQL服务即可!!!

谢谢各位!!

GX
就是兼容级别的问题
------解决方案--------------------
呵呵,就是兼容性的问题了。