日期:2014-05-18  浏览次数:20329 次

一个关于存储过程的简单问题,在线等回答
SQL code

--用途:查询记录信息 
--项目名称:
--说明:
--时间:2012/6/25 8:53:15
------------------------------------
ALTER PROCEDURE [dbo].[T_assification_GetListByPage]
@sumnum int,
@page int,
@pagesize int,
@sort nvarchar(200)
AS
DECLARE @strsql nvarchar(1000)
set @strsql='SELECT TOP '+str(@sumnum)+' * FROM T_assification WHERE Classification_id NOT IN ( 
           SELECT TOP '+str(@pagesize*(@page-1))+' Classification_id FROM T_assification ORDER BY '+@sort+'
            )
ORDER BY '+@sort
EXEC(@strsql)


没有报错,但是总是把所有的信息都查出来,而且是从第二条开始的。

------解决方案--------------------
我觉得问题出在not in(这里面)
------解决方案--------------------
我不知道你这借个变量是干什么的。你描述一下你的语句的意图
------解决方案--------------------
同意楼上,把Not In里的单查出来看看吧
------解决方案--------------------
那个要NOT IN 你没有指定