sql server游標寫法

2021-08-17 10:36:08 字數 783 閱讀 4291

--宣告游標cur_delete_table

--forward_only:游標智慧型從第一行滾到最後一行

--read_only:不能通過游標對資料進行刪改

declare cursor_1 cursor forward_only read_only for

select dosage from [dbo].[recipe_cnt] where isnumeric(dosage) =1

declare @dosage_1 varchar(20),@dosage_2 numeric(8,3)

--開啟游標

open cursor_1

--提取游標結果集當前位置的下一行插入到變數中

fetch next from cursor_1 into @dosage_1

--@@fetch_status獲得提取狀態資訊,0成功,-1失敗或行不在結果集中,-2提取的行不存在

while @@fetch_status = 0

begin

begin try set @dosage_2 = convert(numeric(8,3),@dosage_1) end try

begin catch select @dosage_1,error_message() end catch

fetch next from cursor_1 into @dosage_1

end--關閉游標,刪除游標

close cursor_1

deallocate cursor_1

mysql游標很慢 Sqlserver 游標 慢

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

動態游標的寫法

在變數宣告部分定義的游標是靜態的,不能在程式執行過程中修改。雖然可以通過引數傳遞來取得不同的資料,但還是有很大的侷限性。通過採用動態游標,可以在程式執行階段隨時生成乙個查詢語句作為游標。要使用動態游標需要先定義乙個游標型別,然後宣告乙個游標變數,游標對應的查詢語句可以在程式的執行過程中動態地說明。定...

游標的幾種寫法

select empno,ename,job,sal from emp for 游標 declare 定義游標 cursor c man is select from emp where job manager 定義游標的行 在for語句中,這個可以不用定義 c row c man rowtype ...