sqlserver 存儲過程中的top+變量使用分析(downmoon)
更新時間:2011年05月08日 23:24:16 作者:
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
現(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 '
老是提示 在關鍵字 '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(思歸)大哥提醒,發(fā)現(xiàn)可以用以下語句實現(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
邀月注:本文版權由邀月和博客園共同所有,轉載請注明出處。
復制代碼 代碼如下:
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 '
老是提示 在關鍵字 '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(思歸)大哥提醒,發(fā)現(xiàn)可以用以下語句實現(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
邀月注:本文版權由邀月和博客園共同所有,轉載請注明出處。
相關文章
在sqlserver2005中安裝sql server 2000的示例數(shù)據(jù)庫northwind的方法
裝完sql server 2005后卻沒有找到ms的示例數(shù)據(jù)庫northwind 后來查看安裝光盤發(fā)現(xiàn)sql server 2005種只有adventurework與adventureworkDW這兩個sample database 到ms官方站找了好久 才找到sql server 2000的sample database2013-05-05
SQL Server 2005 數(shù)據(jù)庫復制詳細介紹
這篇文章主要介紹了SQL Server 2005 數(shù)據(jù)庫復制技術,有時候我們需要將數(shù)據(jù)庫備份一份到別的服務器上,防止突發(fā)情況2014-08-08
Sql Server2005實現(xiàn)遠程備份數(shù)據(jù)庫
相信大家都在當心數(shù)據(jù)庫的丟失,這也是每個開發(fā)者頭痛的一件事件,因為正在運行的服務器及數(shù)據(jù)庫也在這臺服務器上2014-04-04
SqlServer2005 數(shù)據(jù)庫同步配置圖文詳解
SqlServer2005 數(shù)據(jù)庫同步配置圖文詳解,使用sqlserver2005的朋友可以參考下2012-06-06
SQL server 2005將遠程數(shù)據(jù)庫導入到本地的方法
這篇文章主要介紹了SQL server 2005將遠程數(shù)據(jù)庫導入到本地的方法,需要的朋友可以參考下2015-01-01
sql2008 附加數(shù)據(jù)庫時出現(xiàn)錯誤5123提示的解決方法
今天重裝了一下家里電腦的數(shù)據(jù)庫,在附加己有數(shù)據(jù)庫時,出現(xiàn)5123錯誤2011-11-11
sqlserver巧用row_number和partition by分組取top數(shù)據(jù)
SQL Server 2005后之后,引入了row_number()函數(shù),row_number()函數(shù)的分組排序功能使這種操作變得非常簡單2011-12-12

