Sql cursor 基本應用

2021-07-02 22:44:25 字數 1770 閱讀 1558

1、游標格式:

declare 游標名稱 cursor for select 欄位1,欄位2,欄位3,... from 表名 where ...

open 游標名稱

fetch next from 游標名稱 into 變數名1,變數名2,變數名3,...

while @@fetch_status=0

begin

sql語句執行過程... ...

fetch next from 游標名稱 into 變數名1,變數名2,變數名3,...

endclose 游標名稱

deallocate 游標名稱 (刪除游標)

2、游標應用例項:

table1結構如下:

id int

name varchar(50)

declare @id int

declare @name varchar(50)

declare cursor1 cursor for --定義游標cursor1

select id,name from table1 --使用游標的物件【必須是表結構,如果按符號分割的字串可以用fn_split分割成臨時表的結構】

open cursor1 --開啟游標

fetch next from cursor1 into @id,@name --將游標向下移1行,獲取的資料放入之前定義的變數@id,@name中

while @@fetch_status=0 --判斷是否成功獲取資料

begin

update table1 set name=name+'1'

where id=@id --進行相應處理(跟據需要填入sql文)

fetch next from cursor1 into @id,@name --將游標向下移1行【如果執行完多一行,那就是fetch的格式沒寫對】

endclose cursor1 --關閉游標

deallocate cursor1 --刪除游標

3、游標可以巢狀:巢狀時必須按照例項2中的fetch的格式寫游標,否則會導致內部游標錯亂

declare id_cursor cursor for

open id_cursor

declare @street_id int

set @street_id = 0

fetch next from id_cursor into @street_id

while @@fetch_status=0

begin

fetch next from street_cursor into @index_id

while @@fetch_status=0

begin

--do something

fetch next from street_cursor into @index_id

endclose street_cursor

deallocate street_cursor

--do something

fetch next from id_cursor into @street_id

endclose id_cursor

deallocate id_cursor

SIP基本應用

sip基本應用 sip 協議作為 voip 通訊的主要協議之一,以起簡單,靈活,開放性而逐漸在 voip 通訊領域內佔據主導地位。使用 sip通訊的主要方式如下圖,主要裝置有 sip終端,定向伺服器,位置伺服器,pstn 閘道器等裝置。sip協議發展的目前,最新標準為 rfc3261 主要的網路裝置...

CGI 基本應用

gdi graphics device inte ce plus也就是圖形裝置介面,提供了各種豐富的圖形影象處理功能 在c net中,使用gdi 處理二維 2d 的圖形和影象,使用directx處理三維 3d 的圖形影象,圖形影象處理用到的主要命名空間 是system drawing 提供了對gdi...

nutz dao基本應用

詳情見 自己常用的方法 dao.insert object 該方法和new 乙個普通物件不同的是返回乙個帶主鍵的物件,在資料庫中主鍵是自增的,所以每次插入都是插入max id 處 dao.fastinsert object 則是普通插入,用於乙個迴圈多次插入,即覆蓋乙個事務 dao.query cl...