SQLserver 使用遊標雙重迴圈生成新的資料表內容
begin
declare @a int,@error int
declare @temp varchar(50), @temp2 varchar(50)
set @a=1
set @error=0
--建立臨時表
Create Table Rpt_customerMoney (customerId int, customer varchar(30), supplierId int, supplier varchar(30), receiveSum float) ;
--申明遊標為Uid
declare order_cursor cursor
for (select [id] from customer)
--開啟遊標--
open order_cursor
--開始循環遊標變數--
fetch next from order_cursor into @temp
while @@FETCH_STATUS = 0 --返回被 FETCH語句執行的最後遊標的狀態--
begin
print @temp;
--申明遊標為Uid
declare order_cursor2 cursor
for (select [id] from supplier where ifOurCompany=1)
--開啟遊標2--
open order_cursor2
fetch next from order_cursor2 into @temp2
while @@FETCH_STATUS = 0 --返回被 FETCH語句執行的最後遊標的狀態--
begin
insert into Rpt_customerMoney (customerId, supplierId) values (@temp, @temp2);
print @temp + ' '+ @temp2
fetch next from order_cursor2 into @temp2 --轉到下一個遊標,沒有會死迴圈
end
close order_cursor2 --關閉遊標
deallocate order_cursor2 --釋放遊標
fetch next from order_cursor into @temp --轉到下一個遊標,沒有會死迴圈
end
close order_cursor --關閉遊標
deallocate order_cursor --釋放遊標
end
go