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 動態游標 反映所有資料行的改變...