sqlserver 存儲(chǔ)過(guò)程中的top+變量使用分析(downmoon)
Create proc getWorkPlan2
(@intCounter int
,@lngUserID int)
as
select Top 5 lngWorkID,strWorkName,strExecHumanName,strBeginDate
from worklist where lngExecHumanID= @lngUserID
order by lngWorkID desc
現(xiàn)在想將這里的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 '
老是提示 在關(guān)鍵字 'convert' 附近有語(yǔ)法錯(cuò)誤。
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 '
)
后來(lái),經(jīng)saucer(思?xì)w)大哥提醒,發(fā)現(xiàn)可以用以下語(yǔ)句實(shí)現(xiàn)(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
邀月注:本文版權(quán)由邀月和博客園共同所有,轉(zhuǎn)載請(qǐng)注明出處。
相關(guān)文章
在sqlserver2005中安裝sql server 2000的示例數(shù)據(jù)庫(kù)northwind的方法
裝完sql server 2005后卻沒(méi)有找到ms的示例數(shù)據(jù)庫(kù)northwind 后來(lái)查看安裝光盤(pán)發(fā)現(xiàn)sql server 2005種只有adventurework與adventureworkDW這兩個(gè)sample database 到ms官方站找了好久 才找到sql server 2000的sample database2013-05-05
SQL Server 2005 數(shù)據(jù)庫(kù)復(fù)制詳細(xì)介紹
這篇文章主要介紹了SQL Server 2005 數(shù)據(jù)庫(kù)復(fù)制技術(shù),有時(shí)候我們需要將數(shù)據(jù)庫(kù)備份一份到別的服務(wù)器上,防止突發(fā)情況2014-08-08
sqlserver 2005連接超時(shí)采用bat命令解決
sqlserver 2005 連接超時(shí)會(huì)導(dǎo)致很多依賴(lài)于它的程序無(wú)法正常方法,多么悲催的一件事前啊,本文的出現(xiàn)將解決你的燃眉之急,感興趣的你可不要錯(cuò)過(guò)了哈2013-02-02
Sql Server2005實(shí)現(xiàn)遠(yuǎn)程備份數(shù)據(jù)庫(kù)
相信大家都在當(dāng)心數(shù)據(jù)庫(kù)的丟失,這也是每個(gè)開(kāi)發(fā)者頭痛的一件事件,因?yàn)檎谶\(yùn)行的服務(wù)器及數(shù)據(jù)庫(kù)也在這臺(tái)服務(wù)器上2014-04-04
SqlServer2005 數(shù)據(jù)庫(kù)同步配置圖文詳解
SqlServer2005 數(shù)據(jù)庫(kù)同步配置圖文詳解,使用sqlserver2005的朋友可以參考下2012-06-06
SQL server 2005將遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入到本地的方法
這篇文章主要介紹了SQL server 2005將遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入到本地的方法,需要的朋友可以參考下2015-01-01
sql2008 附加數(shù)據(jù)庫(kù)時(shí)出現(xiàn)錯(cuò)誤5123提示的解決方法
今天重裝了一下家里電腦的數(shù)據(jù)庫(kù),在附加己有數(shù)據(jù)庫(kù)時(shí),出現(xiàn)5123錯(cuò)誤2011-11-11
mssql2005字符串連接方法 避免無(wú)效的連接錯(cuò)誤
用ASPXspy自帶的mssql連接字符串去連接數(shù)據(jù)庫(kù)總是出現(xiàn),DBNETLIB][ConnectionOpen (Invalid Instance()).]無(wú)效的連接2012-06-06
sqlserver巧用row_number和partition by分組取top數(shù)據(jù)
SQL Server 2005后之后,引入了row_number()函數(shù),row_number()函數(shù)的分組排序功能使這種操作變得非常簡(jiǎn)單2011-12-12

