下班时遇到了个问题,没顾上解决,刚解决了。
问题:select count(*) from (select top 60 * from CNNC_ZhiBanBiao order by id desc) 在执行时发生错      误。
异常信息是:Description:System.Data.SqlClient.SqlException: 第 1 行: ')' 附近有语法错误。
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)   at System.Data.SqlClient.SqlCommand.ExecuteScalar()

我把sql语句拿到 MS SQL Server 2000 Enterprise Manager 的 SQL 窗格中调试时可以执行,发现 SQL 窗格执行后在将原始的 SQL 改动了,自动增加了一个  DERIVEDTBL  如下:
SELECT COUNT(*) AS Expr1  FROM
(SELECT TOP 60 *      FROM CNNC_ZhiBanBiao     ORDER BY id DESC) DERIVEDTBL
DERIVEDTBL ??什么意思?不过看到能执行也就没当回事,认为可能是MS SQL Server 2000自动给加的别名吧,应该没有关系的。可是问题也不可能出在别的方面啊,肯定还是sql语句的问题,折腾了一会还是不行,报着试试看的态度到查询分析器中执行(SQL 窗格中调试时可以执行,查询分析器应该也没问题吧),竟然出现了同样的错误提示!马上在sql语句后加上了DERIVEDTBL,ok了!我又试着改成其他随便的词(mm,gg)或者是as mm .....都可以执行!靠,DERIVEDTBL不是唬人的嘛!网上搜了搜,也就是说这是给括号中的内容加了一个别名,作为表的名字。看来这问题是比较基本的问题了,现在才知道,呜呜


相关文章:

  • 2022-01-31
  • 2021-09-07
  • 2021-06-01
  • 2022-12-23
  • 2022-12-23
  • 2022-01-12
  • 2021-07-08
  • 2021-12-04
猜你喜欢
  • 2022-12-23
  • 2022-01-15
  • 2021-06-17
  • 2021-08-21
  • 2021-10-12
  • 2021-12-10
  • 2021-06-08
相关资源
相似解决方案