码迷,mamicode.com
首页 > 数据库 > 详细

不同数据库之间的相互链接

时间:2015-12-07 20:45:24      阅读:539      评论:0      收藏:0      [点我收藏+]

标签:

MSSQL链接MYSQL数据库方法:
前提条件(系统安装MYODBC,这个可以到MYSQL官网上去下载)

1.使用TSQL建立(建立成功不代表可以查询)
直接使用连接字符串
EXEC master.dbo.sp_addlinkedserver @server = N‘MYSQL1‘, @srvproduct=N‘MySQL‘, @provider=N‘MSDASQL‘, @provstr=N‘DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1; DATABASE=test; USER=root; PASSWORD=root; OPTION=3‘
EXEC master.dbo.sp_addlinkedserver @server = N‘MYSQL2‘, @srvproduct=N‘MySQL‘, @provider=N‘MSDASQL‘, @provstr=N‘DRIVER={MySQL ODBC 5.3 UNICODE Driver}; SERVER=127.0.0.1; DATABASE=test; USER=root; PASSWORD=root; OPTION=3‘
其中 MySQL ODBC 3.51 Driver MySQL ODBC 5.3 UNICODE Driver ,这个需要到“管理”--“ODBC”中查看具体机器上装的MYODBC的版本

在ODBC数据源管理器中--系统DNS建立一个MYSQL的连接
EXEC master.dbo.sp_addlinkedserver @server = N‘MYSQL3‘, @srvproduct=N‘MySQL‘, @provider=N‘MSDASQL‘, @datasrc=N‘odbc2mysql3‘, @catalog=N‘test‘

2.在MSSQL管理器UI中建立
注意(数据源和连接字符串只能用一个,两者是冲突的,这个要特别注意)

 


链接完成后,对数据的操作方式(现在MYSQL不支持four-part names)

网络上说MYODBC不支持
sql链接服务器链接mysql http://bbs.csdn.net/topics/380106204
OLE DB Providers Tested with SQL Server http://msdn.microsoft.com/en-us/library/ms187072.aspx

 

-- 把SQL SERVER里的TT表的记录插入到MYSQL的T1表里,这这里也可以插入具体值。
INSERT OPENQUERY(MySQLTest,‘select * from t1‘) select * from TT;
INSERT OPENQUERY(MySQLTest,‘select * from t1‘) values (99,99,99);

-- 对T1表进行UPDATE操作
UPDATE OPENQUERY(MySQLTest,‘select value from t1‘) set value=value +100;

-- 对T1表进行DELETE 操作,不明白为什么一次只能删除一条,
DELETE OPENQUERY (MySQLTest, ‘SELECT * FROM t1 WHERE hour = 99‘);
DELETE OPENQUERY (MySQLTest, ‘SELECT * FROM t1 ‘);

-- DELETE OPENQUERY (MySQLTest, ‘SELECT * FROM t1 WHERE hour > 2‘); --这样是不行的,报错
/*
链接服务器"MySQLTest"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "键列信息不足或不正确。更新影响到多行。"。
消息 7345,级别 16,状态 1,第 1 行
链接服务器 "MySQLTest" 的 OLE DB 访问接口 "MSDASQL" 无法从表 "SELECT * FROM t1 WHERE hour > 2" 删除数据。更新操作不满足架构要求。
*/
-- 对T1表进行查询操作
select * from openquery(MySQLTest,‘select * from t1‘);

-- 把MYSQL的T1表的记录写回到MSSQL

insert into TT select * from openquery(MySQLTest,‘select * from t1‘);

不同数据库之间的相互链接

标签:

原文地址:http://www.cnblogs.com/gameshan/p/5027058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!