sqlserver 存储过程中的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
邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
sql某个日期是当年的第几周
/* *周一作为一周的开始 *当年的1月1号所在的周算作第一周 */ CREATE function GetWeekIndexFirstDate ( @...
[阅读全文]
-
-
数据库SQL---范式
1、数据冗余导致的问题:冗余存储、更新异常、插入异常、删除异常。 2、函数依赖:一种完整性约束。 在关系模式r(R)中,α属于R,β属于R。 1)α函数...
[阅读全文]
-
-
数据库SQL---查询
1、查询所有列 select *from emp;--*表示所有的,from emp表示从emp表中查询。 2、查询指定列 select empno,e...
[阅读全文]
-
-
-
-
网友评论