05
Sql geçiçi tablolar, truncate, insert ve bulkcopy hakkında…
Posted by yasin | Posted in SQL | Posted on 05-11-2008
Vereceğim bilgiler yüksek seviye olmasa da işe yarayacak bilgiler.
Örnekler üzerinden giderek Sql”de geçiçi tablolar, truncate, insert ve bulkcopy hakkında bilgi vereceğim.
Geçici Tablolar
Aşağıdaki kod ile Temp1 isminde geçici bir tablo oluşturduk.
SELECT * INTO #Temp1 FROM uyeler |
Aşağıdaki kod ile ise geçici tablomuzdaki verilere ulaşabiliriz.
SELECT * FROM #Temp1 |
Aşağıdaki kod ile Temp2 isminde bir geçici tablo oluşturduk
SELECT * INTO ##Temp2 from uyeler |
Yukarıdaki örneklerde dikkat ettiyseniz birinde tek # diğerinde 2 # işareti var bunun anlamı
Sqlserver için tek # local çift # global anlamına gelir yani yarattığımız geçici bir tabloya sadece o pencere içinde ulaşmak için tek
bağlı olan her uygulamadan erişmek için ise çift ## işareti kullanırız.
SELECT * FROM ##Temp2 |
Temp2′deki verileri listeleeriz.Geçici tablolar systemdatabases altında Temp Db”de oluşur
Geçici tablolarımızı silmek için kodunu kullanırız.
DROP TABLE ##Temp2 |
TRUNCATE
TRUNCATE table uyeler |
Uyeler tablosundaki tüm verileri siler tabloyu ilk haline çevirir kayitlari delete ile silmemizden farkı ne diye sorarsanız delete ile sildiğmizde otomatik artan kolonumuzun değeri sıfırlanmaz yeni bir kayıt eklediğimizde eski değerden devam eder truncate kullandığımızda tablomuz yeniden doğar diyebiliriz
INSERT
INSERT INTO uyeler(Isim,yas,okul,sehir) VALUES('Alp',22,'Pamukkale Üniversitesi','Aydın') |
Yukarıdaki sql cümlesi ile uyeler tablosuna yeni bir kayıt ekliyoruz.
Eğer tabloda varolan tüm kolonlara değer gönderiyorsak yukarıdaki sql cümlesini aşağıdaki şekliyle alan isimlerini yazmadan kullanabiliriz.
INSERT INTO uyeler VALUES('Alp',22,'Pamukkale Üniversitesi','Aydın') |
Örneğin bir kayıt eklemek istiyoruz şehir alanına değer gönderilmezse o alan için belirlenmiş defaultvalue neyse o değeri alsın istiyoruz
INSERT INTO uyeler VALUES('Alp',10,'Pamukkale Üniversitesi',) |
Yukarıdaki hali ile gönderdiğimizde en son değer alanina birşey yazmadığımız için o alan boşluk değeri alacaktır.
Biz o alanın özelliklerinde verdiğimiz defaultvalue(Denizli) değerini almasını istiyoruz bunun için default anahtar kelimesini göndererek kendi verini(Denizli) kullan diyoruz
INSERT INTO uyeler VALUES('Alp',10,'Pamukkale Üniversitesi',default) |
BULKCOPY
Örneğin başka bir veri tabanından test verileri alıp sistemimizde kendi tablomuza eklemek istediğimizde kullanırız yani toplu kayıt taşıma vb işlemler için kullanılır
Dikkat etmemiz gereken nokta bulkcopy ile sadece verileri bir başka tabloya taşıyabiliriz foreign ve primary keyler taşınmaz ayrıca işlemin başarılı olması için iki tablo arasındaki veri tipleri uyumlu olmalı.
Aşağıdaki kod ile tblKatilimcilar tablosunda bulunan kayitlari uyeler tablosuna aktaririz
INSERT INTO uyeler SELECT isim , yas , universite , sehir FROM tblKatilimcilar |
Aşağıdaki kod ile uyeler tablosundaki verilerle uyelerGecici diye gerçek bir tablo oluşturduk.
SELECT * INTO uyelerGecici FROM uyeler |
Son olarak bir hatırlatma UPDATE ve DELETE cümlelerimizde WHERE koşuluna dikkat edelim yoksa verilerimizden olabiliriz.
DELETE FROM uyeler WHERE uyeId <10 |
WHERE koşulunu koymayı unutmayalım yoksa tüm kayıtlarımızı kaybederiz
UPDATE uyeler SET yas = 100 |
Yukarıdaki kod ile bütün satırları 100 yaparız koşul olmadığı için.
UPDATE uyeler SET yas =21 , okul ='PAU' WHERE katilimciId = 10 |
10 numaralı id ‘ye sahip kişinin okulunu PAU yaşını ise 21 yaparız

Onur duydum efendim