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

    存储过程中的TOP后跟一个变量会如何?
    Create proc getWorkPlan2
    (
    @intCounter int
    ,
    @lngUserID int)

    as
    select Top 5 lngWorkID,strWorkName,strExecHumanName,strBeginDate
    from worklist where lngExecHumanID= @lngUserID
    order by lngWorkID desc 
    现在想将这里的Top 5 改为变量· Top @intCounter
    如下

    ALTER proc getWorkPlan2
    (
    @intCounter int
    ,
    @lngUserID int)
    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' 附近有语法错误。
    OK!

    于是改为


    ALTER proc 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 '
    )

     后来,经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 
  • 相关阅读:
    弹窗
    [转]JNI字段描述符“([Ljava/lang/String;)V”
    [转]JNIEnv解析
    [转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
    [转]Linux下如何查看版本信息
    [转]apt-get 与 yum的区别 (转)
    我的tesseract学习记录(二)
    [转]pkg-config的用法
    [转]linux 创建连接命令 ln -s 软链接
    如何写makefile
  • 原文地址:https://www.cnblogs.com/flysun0311/p/2065713.html
Copyright © 2011-2022 走看看