sqlserver 存储过程中的top+变量使用分析(downmoon)

2016-02-19 09:55 68 1 收藏

下面图老师小编跟大家分享一个简单易学的sqlserver 存储过程中的top+变量使用分析(downmoon)教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

存储过程中的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

邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。

来源:https://www.tulaoshi.com/n/20160219/1592699.html

延伸阅读
标签: SQLServer
最近我在为公司的框架程序(以数据应用为导向的应用体系)做数据管理模块,这个模块的需求比较简单:备份、恢复和清理日志。我公司的软件基本上以C/S为基本架构,所以数据管理模块中两个主要的功能‘备份与恢复’都可能会在Client端操作,备份与恢复’的文件也都有可能存储在client端,因而这个数据管理模块就必须能够实现在远程备份与恢复数据...
标签: SQLServer
SQL server 的 T-Sql 语言的功能是 非常的强大,但是有个时候 也确实是有些限制和不方便,为什么不象 asp 一样 大量的借用组件呢?开始在 Sql online book 中查找,终于找到了 一个 Sql 的 系统存储过程 sp_OACreate,下面大家就一起去 看看这个 存储过程的神气之处吧 s首先我们先用VB 作一个最简单的组件 ,因为是介绍性的文章,所以这个组件是...
Start! 下面是创建存储过程 CREATE PROCEDURE select_forum AS select * from forum Go xx.aspx <%@ Page Language="VB" % <%@ Import Namespace="System.Data" % <%@ Import Namespace="System.Data.SQL" % <% dim conn as SQLConnection dim cmd as SQLCommand dim myreader as SQLDataReader conn=new SQLConnectio("server=loc...
标签: ASP
       我的一个asp + sqlserver的分页程序:这个程序的特点就是指将当前页的纪录掉到页面上来。性能不错,而且不用存储过程,由于代码没有封装,所以很零散,要用到你的程序中,需要先简单读读。然后注意需要自己设置的地方的意思。有些是可以省略的。有些参数传递也是可以省略的。     &n...
/*存储过程*/ sp_databases --列出服务器上的所有数据库 sp_server_info --列出服务器信息,如字符集,版本和排列顺序 sp_stored_procedures--列出当前环境中的所有存储过程 sp_tables --列出当前环境中所有可以查询的对象 sp_start_job --立即启动自动化任务 sp_stop_job --停止正在执行的自动化任务 sp_password --添加或修改登录帐户...

经验教程

988

收藏

34
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部