转载至:http://www.cnblogs.com/tianlong0072/archive/2007/10/28/940766.html
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 支持这个功能了
具体动态参考上术代码