SELECT * INTO Komutu ile Kayıt Ekleme
Yazan : Yusuf Nar, Kasım 27, 2006, Pazartesi 17:28
Etiket(ler) : sql, insert, kayıt eklemek
SQL'de kayıt eklemek için kullanılan üç yöntemden 3.sü SELECT * INTO komutunu kullanmaktır. Diğer iki yöntemi;
SQL'de INSERT İfadesi ve Kayıt Ekleme ve
INSERT ve SELECT İfadeleri ile Kayıt Ekleme
makalelerinde incelemiştik.
SELECT INTO komutunu kayıt eklemenin ötesinde şu amaçlarla kullanabiliriz.
- Bir tabloyu yedeklemek
- Tablodaki belli kayıtları yeni bir tabloya almak
SELECT INTO komutunun kullanıma şöyle basit bir örnek verelim;
SELECT * INTO Categories_Yedek
FROM Categories
Komutları SQL Server üzerindeki Nothwind veritabanı üzerinde çalıştırıyoruz.
Yukarıdaki komut ilk olarak Categories tablosu ile aynı yapıda Categories_Yedek isimli bir tablo oluşturacaktır. Daha sonra Categories tablosundaki tüm kayıtları Categories_Yedek tablosuna aktaracaktır. Burada şunu bilmekte fayda var; SELECT INTO komutu index, trigger gibi nesneleri yeni oluşturulan tabloya aktarmaz.
Aynı komutu tekrar çalıştırdığımızda;
There is already an object named 'Categories_Yedek' in the database.
Şeklinde bir hata ile karşılaşacağızdır. Çünkü Categories_Yedek tablosunu tekrar oluşturmaya çalışacaktır.
SELECT INTO ifadesinde WHERE anahtar sözcüğünü kullanarak kayıtları belirleyen sorguyu özelleştirebilirsiniz. Bu durumda tüm tablo kopyalanmayacak, sadece filtrelediğiniz kayıtlar aktarılacaktır. Örneğin;
SELECT * INTO Categories_Yedek
FROM Categories
WHERE CategoryId > 3
İlk sorguda 9 kayıt aktarılırken bu sefer 6 kayıt aktarılacaktır.