还是不知道DERIVEDTBL是啥意思,不过问题解决了,呵呵

下班时遇到了个问题,没顾上解决,刚解决了。
问题: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不是唬人的嘛!网上搜了搜,也就是说这是给括号中的内容加了一个别名,作为表的名字。看来这问题是比较基本的问题了,现在才知道,呜呜


转载于:https://www.cnblogs.com/mapk/archive/2007/06/28/799421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值