SQL中游標的使用

2021-03-31 17:29:16 字數 1759 閱讀 8360

declare @studentnum varchar(9),@course varchar(10),@achievement tinyint,@classorder tinyint

declare @pstudentnum varchar(9),@allcourse varchar(60)

declare allachievement cursor for

select studentnum,course,achievement,classorder 

from tempachievement

where indate=convert(char(10),getdate(),120) and achievement>0

order by studentnum,course

open allachievement

fetch next from allachievement

into @studentnum, @course, @achievement, @classorder

set @pstudentnum=@studentnum

set @allcourse=''

while @@fetch_status = 0

begin

if (@pstudentnum <> @studentnum)

begin

if (len(@allcourse)>0)

begin

insert achievementaddfields(studentnum,addfields)

values(@pstudentnum,@allcourse)

--set addfields=@allcourse

--where  studentnum=@pstudentnum

endset @pstudentnum=@studentnum

--set @allcourse=@course+@achievement+@classorder

--set @allcourse=''

set @allcourse=rtrim(@course) + ',' + ltrim(str(@achievement)) + ',' + ltrim(str(@classorder)) + ';'

fetch next from allachievement

into @studentnum, @course, @achievement, @classorder

endelse

begin

set @allcourse=@allcourse  + rtrim(@course) + ',' + ltrim(str(@achievement)) + ',' + ltrim(str(@classorder)) + ';'

fetch next from allachievement

into @studentnum, @course, @achievement, @classorder

endend

if (len(@allcourse)>0)

begin

insert achievementaddfields(studentnum,addfields)

values(@pstudentnum,@allcourse)

--set addfields=@allcourse

--where  studentnum=@pstudentnum

endclose allachievement

deallocate allachievement

sql 中游標的使用

declare id int declare addtime datetime declare cursor1 cursor for 定義游標cursor1 select id,addtime from mr examine 使用游標的物件 跟據需要填入select文 open cursor1 開啟...

SQL中游標的使用

一般情況下,我們用select這些查詢語句時,都是針對的一行記錄而言,如果要在查詢分析器中對多行記錄 即記錄集 進行讀取操作時,則需要使用到游標或while等迴圈 游標的型別 1 靜態游標 不檢測資料行的變化 2 動態游標 反映所有資料行的改變 3 僅向前游標 不支援滾動 4 鍵集游標 能反映修改,...

SQL中游標的使用

一般情況下,我們用select這些查詢語句時,都是針對的一行記錄而言,如果要在查詢分析器中對多行記錄 即記錄集 進行讀取操作時,則需要使用到游標或while等迴圈。游標你是看不到的 游標都包含在物件裡面 比如 儲存過程 游標的型別 1 靜態游標 不檢測資料行的變化 2 動態游標 反映所有資料行的改變...