Merhaba arkadaşlar.
Kısa bir aradan sonra yine bir makale ile karşınızdayım. Yeniden yoğun bir proje gelene kadar yazabildiğim kadar makale yazmak istiyorum
Bugünde sizlere sql into nedir ne işe yarar sorularının cevaplarına ulaşmanızda yardımcı olmaya çalışacağım. İlk olarak into anahtar kelimesi ve taşıdığı anlamlar üzerine biraz açıklama getireyim.
Into anahtar kelimesi sql in vazgeçilmezlerinden biri. Aslında hepimiz yakından tanıyoruz kendisini. Her kayıt eklemek istediğimizde "insert into ..." ile başlayan sorgularımız da tanıdık onu. Çok klasik bir başlangıç oldu biliyorum ama nedense böyle bir başlangıç daha duygusal olur diye düşündüm 
Insert işlemlerinde kullandığımız into kelimesi türkçe anlamıyla birşeylerin içine veriler göndereceğinin habercisidir. Select into ise kayıt eklemek için değil aynı veritabanında tablonun yedeğini almak için kullanılıyor! Amaç şu: Elinizde yoğun çabalarla oluşturduğunuz içinde 1000 kadar kayıt olan bir tablo var. Bu kayıtları backup alıp saklasınızda anlık işlemlerin önemi kurumsal projelerde daha bir önemlidir. Yani back up ya da import export tarzı işlemler burada ne yazık ki biraz zaman kaybettirir. Yapmanız gereken hangi tabloda çalışacaksanız onun yedeğini alıp hızlı bir şekilde düzenlemeleri yapmak eğer sorun olursa da yedeği kullanıp eski haline geri döndürmek. Mantık bu peki bu işlemi nasıl yapacağız derseniz de;
İlk olarak testDb adında bir veritabanımız olduğunu düşünelim. İçinede deneme amaçlı Names adlı bir tablo oluşturdum. Tablom da çalışmalar yapacağım ve öncesinde orjinal datayı kaybetmemek için yedek almayı düşündüm. Bu tür bir karar verdiyseniz ilk olarak yapmanız gereken MSSQL'de bir adet NEW QUERY yani sorgu penceresi açmak. İçerisine hangi tablonun yedeğini almak istiyorsak şu şekilde bir ifade ile kullanabiliriz.
"select * into TABLEBackUp from TABLE"
Burada yapmak istediğimiz şu: TABLE adında ki tablomuzu TABLEBackUp adında bir tablo oluşturarak yedeğini almak. Kullanım gördüğünüz gibi çok kolay. Kendi veritabanımızda bu işlemi yapmak istersek şu şekilde bir işlem yapabiliriz.

"select * into NamesBackUp from Names"
Bu işlemi yaptıktan sonra dizinimde "NamesBackUp" adında yeni bir tablo oluştuğunu görürüm. Names tablosunda ki tüm özellik ve kayıtları içeren bir tablo, ne güzel :)
.gif)
Ama dikkat ettiyseniz select sorgumda * ifadesi yine karşıma çıktı. Eğer * ifadesi varsa ne demek oluyordu. ( Cvp:Tüm sütunlar :) ) Evet doğru bildiniz. Tüm sütunların varolacağını temsil ediyordu peki biz belli sütunları bu işlem ile yedekleyemezmiyiz?
Sorgumuzu biraz değiştirip * yenine sadece Id sütunun yedeklenmesini istiyorum...
"select Id into NamesBackUp2 from Names"

Sorgumu çalıştırdığım da sorun çıkarmadan yeni tabloyu oluşturduğunu söylüyor. Ne güzel, ne güzel :)
İncelersek iki backup arasında sütun farkının olduğunu anlarız.
Evet arkadaşlar bu günlükte benden bu kadar. Yeni bir makalemde tekrar görüşmek dileğiyle sağlıcakla kalın.
Görüş ve öneriler için : omer@omersaglam.com