測試環境
(此處將 SQL Server Express、MySQL 安裝於同一台電腦)
Windows XP Professional SP3、SQL Server 2008 Express、MySQL 5.5 Windows Community Edition (下載 MySQL)
MySQL 部分
於 test 資料庫中,執行下列指令建立測試資料表:。
create table member (sn int, name varchar(50));
OLE DB、ODBC 設定
1) 點選 開始 --> 設定 --> 控制台 --> 系統管理工具 --> 資料來源 (ODBC)
2) 出現 "ODBC 資料來源管理員" 視窗,點選 "系統資料來源名稱" 頁籤 --> 新增 。
3) 出現 "建立新資料來源" 視窗,選擇 "MySQL ODBC 5.1 Driver" 後,按下 "完成" 。
5) 出現 "MySQL Connector/ODBC Data Source Configuration" 視窗,輸入資料後,點選 "OK"。
(以下為筆者的設定)
Data Source Name:msqlODBC
TCP/IP Server:127.0.0.1 (若欲連接至遠端資料庫伺服器,於此處輸入該伺服器 IP 位址。)
Port:3306
User:root
Password:您的 root 登入密碼
Database:test
6) 點選 "確定" 以關閉 "ODBC 資料來源管理員" 視窗。
SQL Server 部分
1) 執行以下指令以建立 "連接的伺服器"
-- 建立遠端伺服器的連接設定 MySQL_ODBC
exec sp_addlinkedserver @server = N'MySQL_ODBC',
@srvproduct = N'',
@provider = N'MSDASQL',
@datasrc = N'msqlODBC';
exec sp_addlinkedsrvlogin @rmtsrvname = 'MySQL_ODBC', @useself = 'FALSE', @rmtuser = 'root', @rmtpassword = 'root 帳號使用之密碼' ;
-- 建立 SQL Server 伺服器與遠端伺服器的登入對應
exec sp_addlinkedsrvlogin @rmtsrvname = N'MySQL_ODBC',
@locallogin = N'sa',
@useself = N'False',
@rmtuser = N'root',
@rmtpassword = N'root 帳號使用之密碼';
-- 當上述對應關係不存在時,此二伺服器間不建立其他連接。
exec sp_droplinkedsrvlogin @rmtsrvname = N'MySQL_ODBC', @locallogin = NULL ;
go
2) 新增
insert openquery (MySQL_ODBC, 'select sn, name from member') values (1, 'Tom Smith') ; insert openquery (MySQL_ODBC, 'select sn, name from member') values (2, 'Mary Smith') ;
3) 查詢
select * from openquery(MySQL_ODBC,'select * from member where name like ''%Mary%'' ');
4) 修改
update openquery (MySQL_ODBC, 'select name from member where sn = 1') SET name = 'JJJ'; -- 檢查結果 select * from openquery(MySQL_ODBC,'select * from member order by sn');
5) 刪除
delete openquery (MySQL_ODBC, 'select * from member where sn = 1'); -- 檢查結果 select * from openquery(MySQL_ODBC,'select * from member order by sn');