LOGO

LOGO
LOGO
ads header

Breaking News

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 int

declare cursorAdi cursor for
      SELECT ID from  tabloAdi1
OPEN cursorAdi
FETCH NEXT FROM cursorAdi
INTO @ID
WHILE @@FETCH_STATUS = 0
BEGIN

  --burada satir satir aldigimiz kayitlarla istedigimiz islemi yapabiliriz. Örn:
  select * from tabloAdi2 where ID = @ID
  --

  FETCH NEXT FROM cursorAdi INTO @ID
END
CLOSE cursorAdi
DEALLOCATE 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(),112DECLARE 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