sqlserver2008查询分析器执行如下语句
SELECT FType=0,x.FId  FROM tempmat x 
  ORDER BY x.FType
提示 列名FType无效,但是在我之前备份恢复的数据库上 ,该语句可以正确执行。
请问各位大侠,是不是数据库的什么参数影响了该SQL的执行效果?

解决方案 »

  1.   

    SELECT FType=0,x.FId FROM tempmat x  
      ORDER BY 1
      

  2.   

    不同的数据库,相同的表,相同的SQL语句,一条可以正常执行,一条报列名FType无效。有可能会是什么原因?救命啊 
      

  3.   

    ORDER BY x.FType把 x. 去掉看看。
      

  4.   

    SELECT FType FROM tempmat分别在备份前的数据库和现在的数据库里执行下,看现在的数据库是否会出错。
    可能两个表的字段不同。
      

  5.   

    可能你那个表原本就有FTYPE所以没错。
    你现在只不过把FTYPE改成0了。
      

  6.   

    FType都不是表内的字段。
    我在原来的数据库内执行
    SELECT FType,x.FId FROM tempmat x  
      ORDER BY x.FType 
    报错 
    消息 207,级别 16,状态 1,第 1 行
    列名 'FType' 无效。在现在的数据库内执行
    SELECT FType,x.FId FROM tempmat x  
      ORDER BY x.FType 
    报错
    消息 207,级别 16,状态 1,第 1 行
    列名 'FType' 无效。
    消息 207,级别 16,状态 1,第 1 行
    列名 'FType' 无效。
      

  7.   

    在同一台机子,同一条SQL语句,在之前备份恢复的数据库上查询不报错,在现在的数据库上查询报错。
      

  8.   

    ALTER DATABASE database_name  
    SET COMPATIBILITY_LEVEL = 80
    问题解决了,有人修改过数据库的兼容性级别,把兼容性级别改为80支持SQL2000就行了 
    谢谢各位