zoukankan      html  css  js  c++  java
  • 存储过程中的top+变量

    存储过程中的TOP后跟一个变量会如何?

    Create proc getWorkPlan2
    (
    @intCounterint
    ,
    @lngUserIDint)

    as
    select Top 5 lngWorkID,strWorkName,strExecHumanName,strBeginDate
    from worklist where lngExecHumanID=@lngUserID
    orderby lngWorkID desc

    现在想将这里的Top 5 改为变量· Top @intCounter
    如下

    ALTER proc getWorkPlan2
    (
    @intCounterint
    ,
    @lngUserIDint)
    as  
    )
    exec sp_executesql ('select Top '+convert(varchar(10),@intCounter)
    +' lngWorkID,strWorkName,strExecHumanName,strBeginDate from worklist where lngExecHumanID= '
    +convert(varchar(10),@lngUserID) +' order by lngWorkID desc '

    老是提示 在关键字 'convert' 附近有语法错误。于是改为

    ALTERproc getWorkPlan2
    (
    @intCounter int
    ,
    @lngUserID int)

    as
    declare @strCounter varchar(10)
    set @strCounter=convert(varchar(10),@intCounter)
    declare @strUserID varchar(10)
    set@strUserID=convert(varchar(10),@lngUserID)
    exec sp_executesql ('select Top '+@strCounter
    +
    ' lngWorkID,strWorkName,strExecHumanName,strBeginDate from worklist where lngExecHumanID= '
    +@strUserID+' order by lngWorkID desc '
    )

    OK!

    后来,经saucer(思归)大哥提醒,发现可以用以下语句实现(sql2005/2008): 

    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 
    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    13-7实现旅拍卡片布局-2
    13-6实现旅拍卡片布局-1
    13-5实现旅拍瀑布流布局-2
    13-4实现旅拍瀑布流布局-1
    13-3使用TabBar+TabBarView 实现旅拍可滑动切换多Tab
    13-2根据接口实现dao层
    13-1
    12-12本章小结
    12-11【锦上添花】Flutter AI只能语音搜索功能实现
    12-10【收货果实】Futter AI只能语音界面开发-2
  • 原文地址:https://www.cnblogs.com/downmoon/p/1019686.html
Copyright © 2011-2022 走看看