iT邦幫忙

0

[已解決]Cursor寫法

原本詢問Cursor寫法,後來有成功寫出來,因此提供自己撰寫的Cursor範例:

create table [dbo].[tableA](
	FieldName1 nvarchar(4000) not null,
	FieldName2 nvarchar(4000) not null,
	FieldName3 nvarchar(4000) not null,
	FieldName4 nvarchar(4000) not null,
	FieldName5 bit not null,
	FieldName6 bit not null
) 
set nocount on

--定義存放的變數
declare @no nvarchar(4000)

--@tempTable放結果  
--模擬實際table的欄位長相
declare @tempTable table (
    FieldName1 nvarchar(4000)
    , FieldName2 nvarchar(4000)
    , FieldName3 nvarchar(4000)
    , FieldName4 nvarchar(4000)
    , FieldName5 bit
    , FieldName6 nvarchar(4000) bit)

--定義Cursor,並打開
declare myCursor cursor for

--資料集
select * from TableA

--開啟游標
open myCursor

--查看總筆數
print @@cursor_rows 

--迴圈跑Cursor
fetch next from myCursor into 
	@FieldName1,
	@FieldName2,
	@FieldName3,
	@FieldName4,
	@FieldName5,
	@FieldName6
    
while(@@fetch_status <> -1)
begin
    --撰寫商業邏輯
    --先簡單印出資料
	print @no

--抓下一筆
fetch next from myCursor into 
	@FieldName1,
	@FieldName2,
	@FieldName3,
	@FieldName4,
	@FieldName5,
	@FieldName6
    
end

--關閉與釋放Cursor
close myCursor 
deallocate myCursor

尚未有邦友回答

立即登入回答