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.

  1. SELECT * INTO #Temp1 FROM uyeler

Aşağıdaki kod ile ise geçici tablomuzdaki verilere ulaşabiliriz.

  1. SELECT * FROM #Temp1

Aşağıdaki kod ile Temp2 isminde bir geçici tablo oluşturduk

  1. 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.

  1. 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.

  1. DROP TABLE ##Temp2

TRUNCATE

  1. 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

  1. 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.

  1. 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

  1. 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

  1. 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

  1. INSERT INTO uyeler
  2. SELECT isim , yas , universite , sehir FROM tblKatilimcilar

Aşağıdaki kod ile uyeler tablosundaki verilerle uyelerGecici diye gerçek bir tablo oluşturduk.

  1. SELECT * INTO uyelerGecici FROM uyeler

Son olarak bir hatırlatma UPDATE ve DELETE cümlelerimizde WHERE koşuluna dikkat edelim yoksa verilerimizden olabiliriz.

  1. DELETE FROM uyeler WHERE uyeId <10

WHERE koşulunu koymayı unutmayalım yoksa tüm kayıtlarımızı kaybederiz

  1. UPDATE uyeler SET yas = 100

Yukarıdaki kod ile bütün satırları 100 yaparız koşul olmadığı için.

  1. 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

Comments (1)

  1. Onur duydum efendim :)

Post a comment