CURSOR kullanımı
SQL Server da Cursor ile Kayitlar Üzerinde Satir Satir Gezinme
Cursor ile Verileri Satir Satir isleme
Sql Serverda bir sorgu sonucu dönen kayitlar üzerinde satir satir islem yapmak için cursor kullaniriz. Cursor hangi satir üzerinde ise o satirda bulunan veriler ile islem yapariz.
Nasil Kullanilir:
Cursor de kullandigimiz Select cümlesinde dönen her kayit bir degiskene atanmalidir. Bu yüzden bu degeri alacagimiz bir degisken tanimlanir daha sonra cursor tanimlanarak cursor açilir. Select ifadesi sonucunda dönen kayit satir satir islenir. Basit bir cursor örnegi verelim.
declare @ID intdeclare cursorAdi cursor forSELECT ID from tabloAdi1OPEN cursorAdiFETCH NEXT FROM cursorAdiINTO @IDWHILE @@FETCH_STATUS = 0BEGIN--burada satir satir aldigimiz kayitlarla istedigimiz islemi yapabiliriz. Örn:select * from tabloAdi2 where ID = @ID--FETCH NEXT FROM cursorAdi INTO @IDENDCLOSE cursorAdiDEALLOCATE cursorAdi
CURSOR KULLANARAK DATABASE YEDEKLEME
DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file name SET @path = 'C:\Backup\' SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) DECLARE db_cursor CURSOR FOR
SELECT name FROM MASTER.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb') OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name END
CLOSE db_cursor
DEALLOCATE db_cursor
Cursor konusunda detaylı bir makale..
https://www.gencayyildiz.com/blog/ms-sql-server-cursor-nedir-neden-ve-nasil-kullanilir/
Mutlaka göz atın.
Hiç yorum yok