SQL语句如下:select top 20 *                               
from [(select a.*,b.cjzf,b.km1cj,b.km2cj,b.km3cj,b.km4cj,b.status,b.rxksrq,b.printcode 
from dlzs_bm a left join dlzs_bm_rxks b on a.sbh=b.sbh) t] 
where cjzf>='20' and nd='2006' and rxxq='1'  order by [bh] asc报错如下:
服务器: 消息 103,级别 15,状态 7,行 2
以 '(select a.*,b.cjzf,b.km1cj,b.km2cj,b.km3cj,b.km4cj,b.status,b.rxksrq,b.printcode 
from dlzs_bm a left join dlzs_bm_rxks b on a.' 开头的 标识符 太长。最大长度为 128。不知道是什么问题,该如何解决。求~

解决方案 »

  1.   

    select top 20 *                               
    from (select a.*,b.cjzf,b.km1cj,b.km2cj,b.km3cj,b.km4cj,b.status,b.rxksrq,b.printcode 
    from dlzs_bm a left join dlzs_bm_rxks b on a.sbh=b.sbh) t 
    where cjzf>='20' and nd='2006' and rxxq='1'  order by [bh] asc
      

  2.   

    select top 20 *                               
    from (select a.*,b.cjzf,b.km1cj,b.km2cj,b.km3cj,b.km4cj,b.status,b.rxksrq,b.printcode 
    from dlzs_bm a left join dlzs_bm_rxks b on a.sbh=b.sbh) t 
    where cjzf>='20' and nd='2006' and rxxq='1'  order by [bh] asc
      

  3.   

    select top 20 *                               
    from (select a.*,b.cjzf,b.km1cj,b.km2cj,b.km3cj,b.km4cj,b.status,b.rxksrq,b.printcode 
    from dlzs_bm a left join dlzs_bm_rxks b on a.sbh=b.sbh) t 
    where cjzf>='20' and nd='2006' and rxxq='1'  order by [bh] asc
      

  4.   

    去掉from 之后的 [  ]号
      

  5.   

    可是[]是SQL SERCER自动加上的啊!
    因为我使用的是存储过程!DECLARE @RC int
    DECLARE @tblName varchar(255)
    DECLARE @fldName varchar(255)
    DECLARE @PageSize int
    DECLARE @PageIndex int
    DECLARE @OrderType int
    DECLARE @strWhere varchar(1500)
    SELECT @tblName = '(select a.*,b.cjzf,b.km1cj,b.km2cj,b.km3cj,b.km4cj,b.status,b.rxksrq,b.printcode from dlzs_bm a left join dlzs_bm_rxks b on a.sbh=b.sbh) t'
    SELECT @fldName = 'bh'
    SELECT @PageSize = 20
    SELECT @PageIndex = 1
    SELECT @OrderType = 0
    SELECT @strWhere = 't.cjzf>=''20'' and t.nd=''2006'' and t.rxxq=''1'''
    EXEC @RC = [pkudllms].[dbo].[splitpage] @tblName, @fldName, @PageSize, @PageIndex, @OrderType, @strWhere
    DECLARE @PrnLine nvarchar(4000)
    PRINT '存储过程: pkudllms.dbo.splitpage'
    SELECT @PrnLine = ' 返回代码 = ' + CONVERT(nvarchar, @RC)
    PRINT @PrnLine