Wednesday 2 October 2013

Loop Record Table with Fetch Cursor on T-SQL

Fetch cursor adalah salah satu fasilitas yang disediakan oleh SQL Server untk looping dengan membawa informasi tiap record yang di looping tersebut, nanti mau diapakan data per-record hasil loopingan itu terserah kepada kita yang menolahnya, berikut ini adalah contoh looping menggunakan fetch cursor


-- pendeklarasian variable dan kursor
DECLARE @
IDMenu INT
DECLARE @MenuName VARCHAR(50)
--Mengisi cursor dengan query yang akan di looping
DECLARE MyCursor CURSOR FOR
SELECT IDMenu,MenuName FROM dbo.TblMenu
OPEN MyCursor
--mengisi hasil record ke dalam variable yang di sediakan
FETCH NEXT FROM MyCursor INTO @
IDMenu ,@MenuName
--looping
WHILE @@FETCH_STATUS = 0
BEGIN           --penggunaan variable yang
--sudah terisi hasil loopingannya
--nantinya terserah mau diapakan hasil perecordnya
SELECT @IDMenu AS idMenu,@MenuName as MenuName
--mengisi hasil record selanjutnya  --ke dalam variable yang di sediakan
FETCH NEXT FROM MyCursor INTO @
IDMenu ,@MenuName
        END
     
CLOSE MyCursor
DEALLOCATE MyCursor


Menurut Penulis, fetch cursor memang memakan banyak sekali memory, karena setiap loopingan per-record, akan menjalakan satu buah prosedur yang nantinya data tersebut akan kita olah, bayangkan apabila di query kursornya ada ratusan atau bahkan ribuan record, prosedur yang di jalankan = jumlah recordnya.

No comments:

Post a Comment