博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL Top 后面跟变量

Posted on 2007-10-28 23:05  夜疯子  阅读(2668)  评论(0)    收藏  举报
ALTER PROCEDURE Up_Get_UserBaseInfo_List
 
 (
 @User_Type varchar(10),
 @PageSize int,
 @MaxId int
 )
 
AS
if @MaxId =0
begin
 exec ('select top '+@PageSize+' [User_Id],UserBase_Email,UserBase_QQ,UserBase_Tel,UserBase_RealName,UserBase_Birthday,UserBase_Sex,UserBase_Address
  from V_UserDetails where User_UIfuVerify=1 and User_Type='+@User_Type)
 end
else
   exec ( 'select top '+@PageSize+' [User_Id],UserBase_Email,UserBase_QQ,UserBase_Tel,UserBase_RealName,UserBase_Birthday,UserBase_Sex,UserBase_Address
  from V_UserDetails where User_UIfuVerify=1 and User_Type='+@User_Type+' and ([User_Id]>(select max([User_Id]) from  (select Top '+@MaxId+' [User_Id] from V_UserDetails where User_Type='+@User_Type+') as t))')


SQL SERVER 2000不支持   TOP   +   变量 只能用动态SQL解决盖子看大家都有这个需求  
于是呼   SQL   SERVER   2005   支持这个功能了
具体动态参考上术代码