sqlserver 存储过程中的top+变量使用分析(downmoon)
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
邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

標題:Oracle預存程序實現批次更新的步驟與注意事項在Oracle資料庫中,預存程序是一組為了提高資料庫效能、重複使用程式碼、增強安全性的SQL語句集合,透過預存程序可以實現批次更新資料的操作。本文將介紹如何使用Oracle預存程序實現批次更新,並提供具體的程式碼範例。步驟一:建立預存程序首先,我們需要建立一個預存過程,用來實現批次更新的操作。以下是建立預存程序的

linux top指令無法使用是因為系統中沒有安裝top指令,其解決方法就是透過「apt-get install procps」或「yum install procps」指令安裝top指令即可。

MySQL刪除預存程序的方法有使用DROP PROCEDURE語句、使用MySQL Workbench和使用命令列工具等。詳細介紹:1、使用DROP PROCEDURE語句,其步驟為先開啟MySQL客戶端或使用任何支援MySQL的工具,再連接到您的MySQL資料庫,最後執行以下SQL語句來刪除預存程序;2、使用MySQL Workbench刪除儲存過程等等。

Oracle資料庫中預存程序是一種特定類型的預存程序,用於在資料庫中執行一系列的SQL語句和資料操作。在實際的資料庫開發工作中,有時候我們需要判斷某個表格是否存在於資料庫中,這樣可以在預存過程中做一些判斷和邏輯處理。以下我們將介紹如何在Oracle資料庫中實作判斷表是否存在的方法,並提供具體的程式碼範例。首先,我們可以利用系統表user_tables或all_t

Golang預存程序的實作原理與應用預存程序是一種在關聯式資料庫中儲存並能被應用程式呼叫的預編譯程序,可以有效地減少網路傳輸資料的開銷,提高資料庫的執行效率。雖然Golang並不直接支援預存程序,但可以透過使用SQL語句來模擬實作預存程序的功能。本文將介紹Golang中實作預存程序的原理和應用,並提供具體的程式碼範例。一、Golang預存程序的實作原理在Gol

標題:Oracle預存程序與函數詳細比較及優勢分析在Oracle資料庫中,預存程序與函數是兩種重要的資料庫對象,它們都可以用來封裝一系列的SQL語句和邏輯,提高資料操作的效率與復用性。本文將詳細比較Oracle預存程序和函數的特點,以及它們各自的優勢所在,並提供具體的程式碼範例。預存程序預存程序是一組預先編寫好並儲存在資料庫中的SQL語句和PL/SQL程式碼邏輯

Oracle儲存過程批次更新的效能最佳化策略在Oracle資料庫中,預存程序是一種用來處理資料邏輯或執行特定任務的資料庫對象,可以提供一定的效能最佳化策略,特別是在批次更新資料時。大量更新資料通常會涉及大量的行級操作,為了提高效能和效率,我們可以採取一些策略和技巧來優化預存程序的效能。以下將介紹一些Oracle預存程序批次更新的效能最佳化策略,並提供具體的程式碼範例

如何在MySQL中使用C#編寫自訂預存程序和函數引言:MySQL是一個廣泛使用的開源資料庫管理系統,而C#是一種常用的物件導向的程式語言。在開發過程中,我們經常需要使用資料庫預存程序和函數來提高程式碼的複用性和效能。本文將介紹如何在MySQL資料庫中使用C#編寫自訂預存程序和函數,並提供具體的程式碼範例。一、預存程序預存程序是一組為執行特定任務的SQL語句集
