Geçici tablo oluşturmak ve tablodan tabloya kayıt ekleme

  • 04.10.2011 14:52
  • SQL
  • 7311

Merhaba;
Bu makalede, hem geçici bir tablonun nasil olusturuldugunu hem de olusturulan bu geçici tablodan, veritabanindaki bir tabloya kayitlarin nasil eklenecegi ile ilgili bir konu anlatilmaktadir. Dilerseniz hemen anlatima geçelim: Yazdigimiz sorgu asagida:

WITH tblDepartman as

(

      Select            DEPARTMAN as fldDepartman,

                        ROW_NUMBER() OVER (Order By DEPARTMAN) as fldId

      From        tblNameList

      Where       DEPARTMAN is not null

      Group By    DEPARTMAN

)

Insert Into tblComboItem( fldComboAdi,fldComboId,fldGrupAdi,fldGrupId)

Select fldDepartman,fldId,'Departman',1 From tblDepartman


Veritabanimda asagidaki tablom var:

Ben bu tablodan sadece departman kolonunun içerisindeki verileri alacagim. Fakat tekrar eden veriler alinmayacak. Bu yüzden önce sadece departman kolonundaki verilerimi çektim, ardindan Group By anahtar kelimesi ile departmanlari grupladim. Yani her tekrar eden kayittan sadece birisini getirdi. Bu islemi Distinct ile de yapabilirsiniz ama ben Group By kullandim. 

Burada ufak bir olaya daha deginmek istiyorum, o da ROW_NUMBER. ROW_NUMBER() ile olusturulan her satira bir satir numarasi verebilirsiniz.Buradaki OVER kelimesinin islevi ise numaralandirma yaparken hangi kolonu siralayip numaralandirma yapacagi anlamina gelmektedir.
                  Son olarak ta çektigim sorguyla tblDepartmanlar adini verdigim bir geçici tablo olusturdum.Bunu da sorgunun en üstünde bulunan "WITH tblDepartmanlar as" satiriyla gerçeklestirdim.Bu sorgudan sonra geçici tablom asagidaki gibi oldu.

Simdi sira geldi olusturdugum bu geçici tablodan kayitlari çekip baska bir tabloya kaydemeye. Bunun içinde bir insert islemi yapacagim. Hangi tabloya kayitlarimi ekleyeceksem önce insert komutumu yaziyorum. Ardindan verileri yazacagim kolon isimlerini belirtiyorum. Daha sonra ise az önce olusturmus oldugum geçici tablodan kayitlarimi çekiyorum. Burada dikkat etmeniz gereken sey, kolon sirasi. Hangi kolona hangi verinin yazilmasini istiyorsaniz Select sorgusunu, insert komutunda yazmis oldugunuz kolon sirasina göre yazin. Hangi kolona hangi veri yazilacaksa. Son olarak sorgumuzu execute ederek islemimizi bitiriyoruz. Ve kayitlari ekledigim tablomun son hali:


Herkese iyi kodlamalar :)

Bu yazıya yapılan yorumlar:

  • Ata Gülcan

    04.03.2018 12:55

    Sağolun.

Siz de düşüncelerinizi yazabilirsiniz:

;