Sepetiniz

Excel dosyasını SQL Server Veritabanına Tablo Olarak Aktarmak

SQL Server Veritabanından Excel’e Tablo Aktarmak” isimli makalemizde SQL Server’dan Excel’e tablomuzu nasıl aktaracağımızı anlattım. Bu makalede de Excel’i SQL Server Veritabanına tablo olarak nasıl aktaracağımızı anlatacağım.

 

Önceki örneğimizde AdventureWorks2014 veritabanından Excel’e Person.Adress tablosunu aktardık. Şimdi ise bu excel’i Test veritabanımıza import edeceğiz.

 

Test veritabanı üzerinde sağ tıklayarak Task->Import diyoruz.

Aşağıdaki ekran görüntüsündeki gibi gerekli alanları dolduruyoruz. Excel file path kısmında Browse diyerek import edeceğimiz excel dosyasını seçiyoruz.

Next diyerek ilerliyoruz. Gelen ekrandan aşağıdaki gibi Microsoft OLE DB Provider for SQL Server’ı seçiyoruz. ServerName ve Database Import seçeneğini seçtiğimi için otomatik olarak geliyor.

 

Bir sonraki ekranda aşağıdaki gibi hiçbir değişiklik yapmadan next diyerek ilerliyoruz.

 

Bir sonraki ekranda aşağıdaki gibi $ işareti olmayan Adress seçeneğini seçerek ilerliyoruz.

 

Bir sonraki ekranda da sql server tip ayarlarını kendisi yapıyor. Biz istersek istediğimiz kolon için istediğimiz tip’i de seçebiliriz. Ama tip uyuşmazlığına dikkat etmemiz gerekir.

Next Next diyerek ilerliyoruz ve Test veritabanına Excel tablosunu [dbo].[Adress] ismindeki bir tablo olarak aktarmış oluyoruz.

 

SQL Server Veritabanından Excel’e Tablo Aktarmak

SQL Server Veritabanından SQL Server Veritabanına Import/Export İşlemi” makalemde veritabanından veritabanına aktarımın nasıl yapılacağını anlattım. Bu makalemde Veritabanında Excel’e aktarımın nasıl yapılacağını anlatacağım. Direk  örnek üzerinden giderek anlatmanın daha faydalı olacağını düşünüyorum. Örneğimizde AdventureWorks2014 tablosundaki Person.Adress tablosunu Excel’e aktaracağız. AdventureWorks2014 veritabanına sağ tıklayarak Task->ExportData diyoruz. Gelen ekrandan aşağıdaki gibi Microsoft OLE DB Provider for SQL Server’ı seçiyoruz.

 

Seçimimizi yaptıktan sonra aşağıdaki gibi bir ekran geliyor. Bu ekran bizim Data Source’umuz. Yani aktarılması gereken tablonun bulunduğu veritabanı. AdventureWorks2014 üzerinde sağ tıklayıp Export dediğimiz için direk Database kısmına aşağıdaki gibi AdventureWorks2014’ü getirdi. Next diyerek devam ediyoruz.

 

 

Excel’e aktarım yapacağımız için Destination kısmından aşağıdaki gibi Microsoft Excel’i seçiyoruz.

 

 

Excel file path kısmından Browse diyoruz ve excel’i nereye kaydedekcesek o path’i seçiyoruz ve aşağıdaki gibi excel’imize bir isim vererek aç diyoruz.

 

 

Excel Version kısmından ben Microsoft Excel 2007’yi seçtim. Siz de hangi seçeneği seçmeniz gerektiğine kendiniz karar verebilirsiniz. Next diyerek ilerliyoruz. Sonraki ekranda aşağıdaki gibi Copy data from one or more tables or views’ı seçerek ilerlemeye devam ediyoruz. Write a query to specify the data transfer’i seçerek kendi sorgunuzla aktarım da yapabilirsiniz.

 

 

Gelen ekranda Person.Adress tablosunu seçiyoruz ve hemen yanındaki kolonda otomatik olarak ‘Adress’ oluştuğunu görüyoruz. Bu Excel’in worksheet’ine verilecek isim. Sizde kendiniz belirleyebilirsiniz. Ben herhangi bir değişiklik yapmadan ilerliyorum.

 

Next Next diyerek ilerliyorum ve aşağıdaki hata ile karşılaşıyorum.

 

 

Bu hatayı almasının sebebi LongBinary tipinden kaynaklanıyor. Geri gelerek Edit Mappings üzerinden aşağıdaki gibi LongBinary tipindeki kolonu ignore ederseniz aktarım tamamlanacaktır. Normalde Excel’e aktarmamız gereken veriler arasında binary bir data olmayacağından ignore seçeneği seçtim.

 

SQL Server Veritabanından SQL Server Veritabanına Import/Export İşlemi

SQL Server’a veri aktarmaya ya da Sql Server’dan veri aktarımı yapmaya ihtiyaç duyduğumuzda SQL Server’daki import export yöntemlerini kullanabiliriz.  En çok ihtiyaç duyulan işlemleri aşağıda sıraladım;

Bu makalede SQL Server veritabanında yine başka bir SQL Server veritabanına import export işlemlerini anlatacağım.

Bir örnek yaparak konuya değinelim. AdventureWorks2014 veritabanından Test isimli bir veritabanına Person.Adress tablosunu aktarmamız gereksin. AdventureWorks2014 veritabanına sağ tıklayıp Tasks->Export Data diyoruz. Gelen ekranda Do not show this starting page again’in yanındaki kutucuğu tıklıyoruz ve next diyoruz. Gelen ekrandan aşağıdaki gibi Microsoft OLE DB Provider for SQL Server’ı seçiyoruz.

 

 

Seçimimizi yaptıktan sonra aşağıdaki gibi bir ekran geliyor. Bu ekran bizim Data Source’umuz. Yani aktarılması gereken tablonun bulunduğu veritabanı. AdventureWorks2014 üzerinde sağ tıklayıp Export dediğimiz için direk Database kısmına aşağıdaki gibi AdventureWorks2014’ü getirdi. Next diyerek devam ediyoruz.

 

 

SQL Server’dan SQL Server’a veri aktarımı yapacağımız için, gelen ekranda tekrar Microsoft OLE DB Provider for SQL Server’ı seçiyoruz. Veriyi nereye aktaracaksak Server Name kısmına aktaracağımız instance ismini yazıyoruz. Tam ismi hatırlayamıyorsanız Sağ taraftaki aşağı dönük ok işaretine tıklayarak seçebilirsiniz fakat bu sizi biraz bekletecektir. O yüzden ismi yazmak daha hızlı bir çözüm. Daha sonra Authentication kısmından Windows ya da SQL Server Authentication’ı seçiyoruz. “SQL Server Kurulumu” isimli makalemde Authentication tiplerinin detaylarına değindim. Authentication yöntemini belirledikten sonra Database kısmına hangi database’e aktarım yapacaksak onun ismini yazıyoruz. Yine ismini tam bilmiyorsak aşağı dönük ok işaretine tıklayarak seçim yapabiliriz.  Biz aynı instance üzerinde başka bir veritabanına aktarım yapacağımız için sonuçta karşımıza aşağıdaki gibi bir ekran gelecek.

 

Next diyerek ilerliyoruz. Sonraki ekranda aşağıdaki gibi Copy data from one or more tables or views’ı seçerek ilerlemeye devam ediyoruz. Write a query to specify the data transfer’i seçerek kendi sorgunuzla aktarım da yapabilirsiniz.

 

 

Bir sonraki ekranda hangi tabloyu aktaracaksak o tabloyu seçiyoruz.

 

 

Edit Mappings diyerek bazı ayarlar yapabilirsiniz. Aşağıdaki ekranda yapabileceğiniz ayarların detaylarını görebilirsiniz. Create Destination Table seçili geldi. Hedefte aynı tablo varsa Drop and recreate to seçeneğini seçebilirsiniz. Identity Insert yapmanız gerekiyorsa bu seçeneği de seçmelisiniz. “Identity Insert” isimli makalemde bu seçeneğin ne anlama geldiğini anlattım. Yada tabloyu aktarırken hedefteki veri tiplerini ve boyutlarını değiştirebilirsiniz. Ama tip uyuşmazlığına dikkat etmeniz gerekir. Varchar veri tipine sahip bir kolonu int tipine dönüştürürseniz aktarımda sorun yaşayabilirsiniz.

 

 

Biz herhangi bir değişiklik yapmadan ok diyoruz ve ardından next next şeklinde ilerleyerek aktarımımızı tamamlıyoruz.

 

Bu örneğimizde Task->Export yöntemiyle seçtiğimiz veritabanından export yaptık. AdventureWorks2014 veritabanınan export yapmak yerine Test veritabanına sağ tıklayıp Task->Import diyerekde benzer adımlarla aynı sonuca ulaşabilirdik. Unutmamamız gereken nokta Data Source kısmı Kaynak, Destination kısmı Hedef.