uykusuzadam blog some development practices

SQL'de Tablolar Arası Veri Taşımak

Database içindeki bir tablomuzu yine aynı database içerisinde başka bir tabloya taşıyabildiğimiz gibi databaseler arası da bu işlemi yapabiliyoruz.

Her zaman yaptığım gibi örnek üzerinden gitmek istiyorum. Tabi AdventureWorks veri tabanından yararlanacağız. Örneğimizde AdventureWorks database’inde Person.Contact tablomuzdan FirstName, LastName, EmailAddress alanlarını yeni oluşturduğumuz tablomuza taşıyalım.

Öncelikle AdventureWorks database’inden çekeceğimiz alanları aktaracağımız tabloyu (ben örnek olduğu için öncesinde database’de oluşturdum) oluşturalım.

CREATE DATABASE MyDatabaseUrun -- Örnek database
USE MydatabaseUrun

CREATE TABLE Personel
(
  PersonelId INT IDENTITY(1,1),
  PersonelAdi nvarchar(50),
  PersonelSoyad nvarchar(50),
  PersonelEmailAdres nvarchar(100)
)

Veriyi insert edeceğimiz tablomuzu oluşturduk.

SELECT Firstname,Lastname,EmailAddress FROM AdventureWorks.Person.Contact

Yukarıdaki sorguyu çalıştırdığımızda AdventureWorks database’indeki Person.Contact tablosunda gelmesini istediğimiz alanları seçip görüntüledik buraya dikkatinizi çekmek istiyorum. Farklı databasede olan veriyi üzerinde çalıştığımız database kullanımdayken çağırabilmiş olduk. Çok basit, sadece yapmanız gereken çağrılmak istenen tablonun başına database adını yazmak. Şayet database adını yazmazsak çağırdığımız tabloyu bulunduğumuz database üzerinde arayacak tabi olmadığı için bizi hata ile karşılaştıracak.

Şimdi tablolar arası veri aktarımını yapalım;

INSERT INTO Personel SELECT Firstname,Lastname,Emailaddress FROM AdventureWorks.Person.contact

tablolar_arasi_veri_tasima

Yukarıdaki gibi başarılı bir şekilde seçili alanlarımızı yeni tablomuza aktarabilmiş olduk, tekrar bir select sorgusuyla teyit edebiliriz.

SELECT * FROM Personel

sorgu_sonuc

Bu kadar basit miydi ? Evet 😉