標籤:style blog http color os io strong 資料
在公司中經常會遇到部署多種資料庫環境的情況,對於開發人員來說經常在不同資料庫之間轉換確實有些繁瑣,本篇將介紹從SQL Server 操作MySQL 資料庫的方法。
資料庫測試環境
1. SQL Server 2008
2. MySQL 5.1.36
Database: Test
Table: TestTable
建立MySQL 測試表
CREATE TABLE `testtable` ( `id` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL)
建立Linked Server
下面來建立一個與MySQL互動的連結(類似Oracle 的DBLink),在SQL Server 管理器中右鍵Server Objects 目錄下的Linked Servers 點擊“New Linked Server”:
Linked server 連結名稱
Server Type 選擇“Other data source”
Provider 選擇“Microsoft OLE DB Provider for ODBC Drivers”
Product name 填寫MySQL 主機地址
Provider String 填寫 Driver={MySQL ODBC 5.1 Driver};Server=ServerName;Database=myDB;
User=myUserName;Password=myPassword;Option=3;
也可以通過TSQL 直接建立:
EXEC master.dbo.sp_addlinkedserver @server = N‘MYSQLLINK‘, @srvproduct = N‘localhost‘, @provider = N‘MSDASQL‘, @provstr = N‘Driver={MySQL ODBC 5.1 Driver};Server=localhost; Database=test;User=root;Password=root;Option=3;‘EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N‘MYSQLLINK‘,@useself = N‘False‘,@locallogin = N‘localhost‘,@rmtuser = N‘root‘,@rmtpassword = N‘root‘
建立完成後便會看到中的連結:
操作MySQL 資料庫
在SQL Server 中通過OPENQUERY 函數對MySQL 進行操作,該函數包含兩個參數:第一個為已建立的連結名稱,第二個為SQL 查詢,它將返回對Linked Server 的讀取或修改操作。如下操作樣本:
OPENQUERY ([LinkedServer], ‘SELECT * FROM [RemoteTable]‘)
向TestTable 中插入測試資料:
insert into openquery(mysqllink,‘select * from testtable‘)select 1,‘Peter‘,30;
查詢資料:
select * from openquery(mysqllink,‘select * from testtable‘);
修改資料:
update openquery(mysqllink,‘select * from testtable‘)set name=‘Jone‘ where id=1;
刪除資料:
delete from openquery(mysqllink,‘select * from testtable‘)where id=1;
相關參考資料
http://dev.mysql.com/downloads/mirror.php?id=376346
http://www.connectionstrings.com/mysql#p21