SqlServer 游標用法

2022-03-10 20:40:55 字數 2435 閱讀 8588

declare

@gonghao

nvarchar(50

)declare

@lowvalueassetsid

nvarchar(50

)declare

@createtime

datetime

declare user_cur cursor

forselect lowvalueassetsid,gonghao,createtime from

lowvalueassets

open

user_cur

while

@@fetch_status=0

begin

--讀取游標

fetch

next

from user_cur into

@lowvalueassetsid,@gonghao,@createtime

--set @gonghao = (select gonghao from lowvalueassets ls where ls.lowvalueassetsid = @lowvalueassetsid) --工號

declare

@depart

nvarchar(50) --

部門declare

@name

nvarchar(200) --

名稱--

depart

set@depart

=(select

distinct depart from staffers s inner

join lowvalueassets l on l.gonghao =

s.empid

where l.gonghao =

@gonghao)--

name

set@name

=(select

distinct s.chinesename from staffers s inner

join lowvalueassets l on l.gonghao =

s.empid

where l.gonghao =

@gonghao

)insert

into

lowvalueassetslinkempid (lowvalueassetsid,ownempid,owndepart,ownname,createtime)

values(@lowvalueassetsid,@gonghao,@depart,@name,@createtime

)end

close

user_cur

--摧毀游標

deallocate user_cur

補充別人講解的游標

create

table

student

(id

intidentity(1,1) primary

key, --

自動增長編號

name varchar(20) not

null, --

姓名age int

notnull, --

年齡address varchar(100) not

null, --位址)

使用游標有4個過程:宣告游標、開啟游標、提取資料、關閉游標。

declare pcurr cursor

for--

宣告乙個名為pcurr游標

declare

@customer

nvarchar(50

)declare

@age

intselect name,age from student --

這個查詢結果非常重要,這個就是我們需要用游標讀取的資料集

open pcurr --

開啟游標

fetch

next

from pcurr into

@customer,@age

while (@@fetch_status

=0) --

判斷游標是否讀取完畢,讀取完畢,這裡將返回100而不是0

begin

print (@customer

)print (@age

)fetch

next

from pcurr into

@customer,@age

--取值,由於我們全面的結果集返回返回的是2行記錄,這裡我們就需要2個自定義引數去取出結果集

close pcurr --

關閉游標

deallocate pcurr --

釋放游標

close 與 deallocate

的不同點:

close是關閉游標

sqlserver基礎 游標用法

簡單的游標使用 declare m cursor cursor 定義游標 scroll for scroll表示可以隨意的移動游標指標 select name,address from test open m cursor 開啟游標 declare name varchar 50 address v...

SQL Server游標的基本用法

sql server游標的基本用法 2011年03月01日 sql server中使用游標的基本步驟 1 建立游標,語法 declare cursorname cursor for sql 2 開啟游標,語法 open cursorname 3 操作游標 移動游標 語法 fetch next fro...

mysql游標很慢 Sqlserver 游標 慢

net專案中有個模組做統計功能,原先方法速度很慢,所以需要改進,統計結果如下圖 下圖接上圖後面 原先的處理方式是,這些資料分別涉及到四五張表,前台從資料庫中查詢出需要的資料集,然後分別遍歷這些資料集拼接html字串顯示在介面上。優化思考 net專案中有個模組做統計功能,原先方法速度很慢,所以需要改進...