23 กรกฎาคม 2554

การใช้งาน CURSOR (เพื่อ Loop ข้อมูลที่ Select มาได้)

// sql code
---- ประกาสตัวแปลเพื่อเก็บค่าแต่ละรอบ
DECLARE @Tag_No varchar(50)

DECLARE SharpStockOver_cursor CURSOR FOR
select Tag_No
from tb_LocationBalance
group by Tag_No
having count(Tag_No) > 1

---- เริ่มต้นเป็นค่าว่าง
set @Tag_No = ''  

----เปิดให้ Corsur ทำงาน
OPEN SharpStockOver_cursor
---- เริ่มต้นทำงาน Row แรก และเก็บค่าในตัวแปล
FETCH NEXT FROM SharpStockOver_cursor
INTO @Tag_No
---- วนลูปจนหมด Row
WHILE (@@FETCH_STATUS = 0)
Begin
 ---- Begin Action ----
 DELETE tb_LocationBalance where Tag_No = @Tag_No
 ---- End Action ----
        ---- ทำงาน Row ต่อไป และเก็บค่าในตัวแปล
 FETCH NEXT FROM SharpStockOver_cursor
 INTO @Tag_No
END
CLOSE SharpStockOver_cursor
DEALLOCATE SharpStockOver_cursor 

0 ความคิดเห็น:

แสดงความคิดเห็น