如果對資料進行遍歷迴圈操作,通過sql的游標就可以實現,下面就為您詳細介紹該方法,供您參考,希望對您學習sql資料庫能夠有所幫助。
sql游標的優點是可以方便從乙個結果集中進行迴圈遍歷資料在進行操作。
1、游標允許應用程式對查詢語句select 返回的行結果集中每一行進行相同或不同的操作,而不是一次對整個結果集進行同一種操作;
2、它還提供對基於游標位置而對錶中資料進行刪除或更新的能力;
3、游標把作為面向集合的資料庫管理系統和面向行的程式設計兩者聯絡起來,使兩個資料處理方式能夠進行溝通。
然而游標也有缺點——複雜和低效,是游標的最大缺點,也是致使很多時候在使用儲存過程中沒有想到游標的主要原因。
1--將book表中的lookcount(int型)字段加上800-1000的隨機整數
2declare
@bid
int3
declare cur cursor
4read_only
5for
select bid from
dbo.book
6open
cur7
fetch
next
from cur into
@bid
8while(@@fetch_status=0
)9begin
10update dbo.book set lookcount=lookcount+
cast((rand()*(1000
-800)+
800) as
int) where bid=
@bid
11fetch
next
from cur into
@bid
12end
13close
cur14
deallocate cur
使用游標的順序: 聲名游標、開啟游標、讀取資料、關閉游標、刪除游標。
由於 @@fetch_status 對於在乙個連線上的所有游標是全域性性的,要小心使用 @@fetch_status 。在執行一條 fetch 語句後,必須在對另一游標執行另一 fetch 語句前測試 @@fetch_status 。在任何提取操作出現在此連線上前,@@fetch_status 的值沒有定義。
例如,使用者從乙個游標執行一條 fetch 語句,然後呼叫乙個儲存過程,此儲存過程開啟並處理另乙個游標的結果。當控制從被呼叫的儲存過程返回後,@@fetch_status 反映的是在儲存過程中執行的最後的 fetch 語句的結果,而不是在儲存過程被呼叫之前的 fetch 語句的結果。
SQL 利用游標迴圈新增資料
查詢資料 select invest.userid,borrowreturn.realreturntime,borrow.investtype,case borrow.investtype when 0 then 成功000,請注意查收 when 1 then 成功111,請注意查收 when 2 ...
sql 利用游標遍歷乙個查詢結果
這裡有乙個單位表 unitt idname 1單位1 2單位2 有乙個評分專案表 itemt idname 1專案1 2專案2 有乙個單位得分表 scoret idunitid itemid score11 12022 15031 23042 260現在需要遍歷所有單位將他們的分數查詢出來,就用迴圈...
sql查詢所有儲存過程內容 利用游標和臨時表
use 資料庫 declare procname varchar 50 create table tmpname content varchar 2000 create table tmp procname varchar 2000 content1 varchar 8000 定義乙個游標 decl...