原本詢問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