Merhaba;
Bu makalede, hem geçici bir tablonun nasıl oluşturulduğunu hem de oluşturulan bu geçici tablodan, veritabanındaki bir tabloya kayıtların nasıl ekleneceği ile ilgili bir konu anlatılmaktadır. Dilerseniz hemen anlatıma geçelim: Yazdığımız sorgu aşağıda:
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
Veritabanımda aşağıdaki tablom var:

Ben bu tablodan sadece departman kolonunun içerisindeki verileri alacağım. Fakat tekrar eden veriler alınmayacak. Bu yüzden önce sadece departman kolonundaki verilerimi çektim, ardından Group By anahtar kelimesi ile departmanları grupladım. Yani her tekrar eden kayıttan sadece birisini getirdi. Bu işlemi Distinct ile de yapabilirsiniz ama ben Group By kullandım.
Burada ufak bir olaya daha değinmek istiyorum, o da ROW_NUMBER. ROW_NUMBER() ile oluşturulan her satıra bir satır numarası verebilirsiniz.Buradaki OVER kelimesinin işlevi ise numaralandırma yaparken hangi kolonu sıralayıp numaralandırma yapacağı anlamına gelmektedir.
Son olarak ta çektiğim sorguyla tblDepartmanlar adını verdiğim bir geçici tablo oluşturdum.Bunu da sorgunun en üstünde bulunan "WITH tblDepartmanlar as" satırıyla gerçekleştirdim.Bu sorgudan sonra geçici tablom aşağıdaki gibi oldu.

Şimdi sıra geldi oluşturduğum bu geçici tablodan kayıtları çekip başka bir tabloya kaydemeye. Bunun içinde bir insert işlemi yapacağım. Hangi tabloya kayıtlarımı ekleyeceksem önce insert komutumu yazıyorum. Ardından verileri yazacağım kolon isimlerini belirtiyorum. Daha sonra ise az önce oluşturmuş olduğum geçici tablodan kayıtlarımı çekiyorum. Burada dikkat etmeniz gereken şey, kolon sırası. Hangi kolona hangi verinin yazılmasını istiyorsanız Select sorgusunu, insert komutunda yazmış olduğunuz kolon sırasına göre yazın. Hangi kolona hangi veri yazılacaksa. Son olarak sorgumuzu execute ederek işlemimizi bitiriyoruz. Ve kayıtları eklediğim tablomun son hali:

Herkese iyi kodlamalar :)