国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

sqlserver 存儲過程中的top+變量使用分析(downmoon)

2020-10-30 19:09:53
字體:
來源:轉載
供稿:網友
存儲過程中的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

邀月注:本文版權由邀月和博客園共同所有,轉載請注明出處。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英超| 拜城县| 崇州市| 古交市| 张家口市| 汶上县| 三都| 渑池县| 峨眉山市| 保亭| 东平县| 白山市| 汾西县| 二连浩特市| 息烽县| 鄂托克旗| 凉城县| 渭南市| 修文县| 中卫市| 罗山县| 台北市| 天长市| 开阳县| 瑞丽市| 宣武区| 南京市| 古丈县| 普洱| 余干县| 高邮市| 扎鲁特旗| 东乡族自治县| 正定县| 淅川县| 维西| 天全县| 河北省| 错那县| 应城市| 宜川县|