天天看点

select top @varible

在MS SQL Server 2K5中写的一个存储过程如下:

CREATE PROCEDURE [dbo].[GetRecentNews]

     @SchoolID int,

     @NewsType int,

     @PageSize tinyint,

     @Page int

AS

 --分页

 if(NewsType=0)

 else

   RETURN

GO

      在SQL Server 2K5中没有问题,但到了Sql Server 2K中,却报错:

服务器: 消息 170,级别 15,状态 1,过程 GetRecentNews,行 9

服务器: 消息 170,级别 15,状态 1,过程 GetRecentNews,行 10

服务器: 消息 170,级别 15,状态 1,过程 GetRecentNews,行 13

     晕!Sql Server 2K中写法如下:

 @SchoolID int,

 @NewsType int,

 @PageSize int,

 @Page int

 declare @current int

 set @current= @PageSize*(@Page-1)

 if (@NewsType=0)

     exec('SELECT TOP ' + @PageSize +' ID,Title,UpdateTime FROM News WHERE  SchoolID='+ @SchoolID +' AND ID NOT IN 

  ORDER BY UpdateTime DESC')

     exec('SELECT TOP ' + @PageSize +' ID,Title,UpdateTime FROM News WHERE  SchoolID='+ @SchoolID +' AND NewsType='+ @NewsType +' AND ID NOT IN 

 return

本文转自Silent Void博客园博客,原文链接:http://www.cnblogs.com/happyhippy/archive/2007/01/29/633119.html,如需转载请自行联系原作者