天天看點

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,如需轉載請自行聯系原作者