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