SQL Top 后面跟变量

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,即:在exec('')中执行语句!  注意:top与变量之间 ,变量与字段名之间,必须有一个空格,否则报错!
于是  SQL   SERVER   2005   支持这个功能了!

关于(sql2005/sql2008):如下:

 

 Alter   proc  getWorkPlan2
 (
   @intCounter   int
 , @lngUserID   int
 )
 as
 set   rowcount   @intCounter
 select   lngWorkID,strWorkName,strExecHumanName,strBeginDate
 from  worklist  where  lngExecHumanID =   @lngUserID
 order   by  lngWorkID  desc 
  

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/downmoon/archive/2006/04/12/660557.aspx

http://www.cnblogs.com/tianlong0072/archive/2007/10/28/940766.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值