begin
declare @id
int,@returnrequestid
varchar(32
),@returnauditor
varchar(32
),@returndate datetime --宣告游標變數
set @id=
0--此處id相當於for迴圈裡的i
declare order_cursor cursor for
select returnrequest.id,accountpwd.employeeid,
putoutflow.founderdate from [dbo].[
returnrequest]as
returnrequest
left join [dbo].[
returndetails]as
returndetails
on returnrequest.id=
returndetails.returnid
left join [dbo].[
putoutflow]as
putoutflow
on returndetails.id=
putoutflow.itemdetailid
left join [dbo].[
accountpwd]as
accountpwd
on putoutflow.founder=accountpwd.account --建立游標
open order_cursor --開啟游標
fetch next from order_cursor into @returnrequestid,@returnauditor,@returndate --給游標變數賦值
while @@fetch_status =
0--返回被 fetch語句執行的最後游標的狀態--
begin
update [dbo].[
returnrequest
]set returnauditor= @returnauditor,returndate=@returndate
where id=@returnrequestid --把游標的值賦給需要更新的字段
set @id=@id+
1--此處相當於for迴圈裡i++
fetch next from order_cursor into @returnrequestid,@returnauditor,@returndate --轉到下乙個游標,沒有會死迴圈
endclose order_cursor --關閉游標
deallocate order_cursor --釋放游標
endgo
SQL Server游標的使用
declare cursor name cursor local global forward only scroll static keyset dynamic fast forward read only scroll locks optimistic type warning for sele...
SQL Server游標的使用
由於sql server中沒有提供直接遍歷表的每一行的方法,所以只有通過游標和while迴圈來代替。當讓也可以不適用游標,僅僅使用while迴圈也能遍歷表 當id為int,主鍵時可用這種方式 但兩種方式我沒有做過實際的對比測試,效率誰高誰低我也不好說。我只給乙個游標使用的簡單示例,想深入了解和使用游...
SQL SERVER 游標的使用
定義游標,讓游標指向sql查詢的結果 declare democursor cursor for select name,id from userinfo 開啟游標。open democursor declare name nvarchar 32 declare id int 把游標指向的資料取出來...