10 Mart 2016 Perşembe

Sql Server Cursor Kullanımı

Sql Server'da Cursor kullanımı genel olarak aşağıdaki gibidir.
DECLARE @NAME NVARCHAR(100)
DECLARE @EMAIL NVARCHAR(200)

DECLARE CRS_KISIEKLE CURSOR FOR
   SELECT DISTINCT 
   ks.Ad
   FROM 
   WL_SN_VW_COURSE as cs INNER JOIN
   WL_SN_ST_COURSEMAP as cm ON cs.COURSEID=cm.COURSEID INNER JOIN
   [IP].uysv2.dbo.OGROgrenciYazilma as st on st.FKDersPlanID=cm.COURSEKEY INNER JOIN
   [IP].uysv2.dbo.OGRKimlik AS og ON st.FKOgrenciID=og.ID INNER JOIN
   [IP].uysv2.[dbo].[Kisi] AS ks ON ks.ID=og.[FKKisiID] LEFT OUTER JOIN
   [IP].uysv2.[dbo].[Nufus] AS nf ON nf.ID=ks.[FKNufusID] INNER JOIN
   [IP].[uysv2].[dbo].[Birimler] AS dp ON og.[FKBolumPrBirimID]=dp.ID  LEFT OUTER JOIN
   WL_SN_ST_USER as us ON CAST(og.ID as nvarchar(50))=us.STUDENTKEY 
      WHERE cs.COURSEID='0901adc9-1660-437c-8790-e0a3bc2eaa49' AND og.EnumOgrDurum = 2
   GROUP BY og.Numara,ks.TC,ks.Ad,ks.Soyad,nf.[ENUMCinsiyet],nf.[DogumTarihi],og.Numara,dp.ID,ks.TC,og.ID,KullaniciAdi

OPEN CRS_KISIEKLE
FETCH NEXT FROM CRS_KISIEKLE INTO @NAME
WHILE @@FETCH_STATUS =0
 BEGIN
  --------
  INSERT INTO TESTTEST (NAME) VALUES(@NAME)

  FETCH NEXT FROM CRS_KISIEKLE INTO @NAME
 
 END

CLOSE CRS_KISIEKLE

DEALLOCATE CRS_KISIEKLE





0 yorum:

Yorum Gönder