MySql den MsSql'e veri aktarma

Programlama03/11/2021


Bu yazımda MySql database'de bulunan bir tablonun tamamını MsSql database'ne; ilave bir araç kullanmadan nasıl aktarılacağını yazacağım.

Öncelikle MsSql'in kurulu olduğu sunucunuzda Mysql ODBC Driver'in yüklü olması lazım, yüklü değilse https://dev.mysql.com/downloads/connector/odbc/ adresinden indiriyoruz ve kuruyoruz. Kurulum tamamlandıktan sonra denetim masası ODBC Veri Kaynakları kısmından MySql Database'ye bağlanıp bağlantımızı test ediyoruz. Eğer bağlanmıyorsa ODBC Driver'nın farklı bir versiyonunu sitesinden indirip, kurup deneyebilirsiniz.

Bağlantı testi başarılı olduktan sonra Microsoft SQL Server Managament Studio'yu Açıyoruz New Query Kısmından

EXEC master.dbo.sp_addlinkedserver 
@server = N'MYSQL', 
@srvproduct=N'MySQL', 
@provider=N'MSDASQL', 
@provstr=N'DRIVER={MySQL ODBC 3.51 Driver}; _
           SERVER=localhost; _
           DATABASE=databaseismi; _
           USER=kullaniciadi; _
           PASSWORD=sifre; _
           OPTION=3'

Sorgusunu çalıştırıyoruz. Buradaki databaseismi, kullaniciadi ve sifre kısımlarını ve özellikle DRIVER kısmındaki süslü parantez içerisindeki sürücüyü kendi bilgilerinize göre güncelleyin. Bu sorguyla MsSql'den MySql'e MYSQL isimli bir DbLink oluşturmuş olduk.

Artık bu link'i kullanarak istediğimiz sorguyu çalıştırabiliriz. Mesela MySql'de bulunan "tabloadi" isimli tablodaki tüm verileri mssql'e "aktarilantablo" tablo adı olacak şekilde aktarmak için aşağıdaki sorguyu çalıştıtabiliriz.

use MsSqlServerDatabaseIsmi
SELECT * INTO dbo.aktarilantablo
FROM openquery(MYSQL, 'SELECT * FROM databaseismi.tablo_adi')

NOT: Aslında işin mantığı MsSql database üzerinde DbLink dediğimiz başka database'lere bağlanma özelliğini kullanmak. Bu yazıda diğer database MySql'i anlattık ama aynı şekilde farklı databaselere de DbLink oluşturup kullanabiliriz.

Etiketler: , , ,