【先生们帮我调查下这个关于SQL语言哪里有疑点】
以下为常用的分页存储过程。
调用了2个表
PrvSrv_Main中的所有字段
PrvSrv_Sort的SortName字段。
==========================================
ALTER PROCEDURE PrvSrv_GetPageData
@PageIndex INT,
@PageSize INT,
@RecordCount INT OUT,
@PageCount INT OUT
AS
SELECT @RecordCount = COUNT(*) FROM PrvSrv_Main
SET @PageCount = CEILING(@RecordCount * 1.0 / @PageSize)
DECLARE @SQLSTR NVARCHAR(1000)
IF @PageIndex = 0 OR @PageCount <= 1
SET @SQLSTR =N'SELECT TOP '+STR( @PageSize )+
'PrvSrv_Main.* FROM PrvSrv_Main,PrvSrv_Sort WHERE PrvSorv_Main.SortID = PrvSorv_Sort.SortID ORDER BY PrvID DESC'
ELSE IF @PageIndex = @PageCount - 1
SET @SQLSTR =N' SELECT * FROM ( SELECT TOP '+STR( @RecordCount - @PageSize * @PageIndex )+
'PrvSrv_Main.*,PrvSrv_Sort.SortName FROM PrvSrv_Main,PrvSrv_Sort WHERE PrvSorv_Main.SortID = PrvSorv_Sort.SortID ORDER BY PrvID ASC)TempTable ORDER BY PrvID DESC'
ELSE
SET @SQLSTR =N' SELECT TOP '+STR( @PageSize )+' * FROM ( SELECT TOP '+STR( @RecordCount - @PageSize * @PageIndex )+
'PrvSrv_Main.*,PrvSrv_Sort.SortName FROM PrvSrv_Main,PrvSrv_Sort WHERE PrvSorv_Main.SortID = PrvSorv_Sort.SortID ORDER BY PrvID ASC)TempTable ORDER BY PrvID DESC'
EXEC (@SQLSTR)
RETURN
======================================
提示
列前缀 'PrvSorv_Main' 与查询中所用的表名或别名不匹配。列前缀 'PrvSorv_Sort' 与查询中所用的表名或别名不匹配。
======================================
怎么回事啊???
问题点数:20、回复次数:2Top
1 楼kouyujie(小宝)回复于 2005-04-01 18:48:50 得分 20
查询操作中涉及到多个表时不能使用通配符*,试一下把所查询的字段逐个写Top
2 楼Lukiya(路基亚)回复于 2005-04-01 18:59:30 得分 0
hi
奶奶的,少打一个表,大意了,大意了。Top




