在sqlserver下增加MYSQL的链接服务器
首先要在SQLserver上服务器上这装ODBC对mysql的支持,我下载了mysql-connector-odbc-5.1.5-win32.rar,安装后在ODBC中有了DRIVER={MySQL ODBC 5.1 Driver}
?
第二步,按下面的SQL脚本来执行
?代码
-- 查询已有的链接服务器 exec sp_linkedservers;
-- 脚本方式 EXEC sp_addlinkedserver ??? @server='MySQLTest', ??? @srvproduct = 'zerolone', ??? @provider = 'MSDASQL', ??? @datasrc = NULL, ??? @location = null, ??? @provstr = 'DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;DATABASE=zerolone;UID=root;PORT=3306;', ??? @catalog = NULL go ??? EXEC sp_addlinkedsrvlogin ??? @rmtsrvname='MySqlTest', ??? @useself='false', ??? @rmtuser='root', ??? @rmtpassword='123456'; go
SELECT * FROM OPENQUERY (PCTMYSQL2,'select * from monolithpro_cate' )
INSERT OPENQUERY (PCTMYSQL2,'SELECT id,parentid,level,title FROM monolithpro_cate') VALUES ('','0','zhangzongqi');
UPDATE OPENQUERY (PCTMYSQL2,'SELECT parentid,title FROM monolithpro_cate WHERE id = 320') SET parentid = '2',LEVEL=3,title=title+'pct';
DELETE OPENQUERY (PCTMYSQL2,'SELECT id FROM monolithpro_cate WHERE id = 316');
?
?最后,好了可以实现在SQLserver下,添删改MYSQL里的数据了。
原文地址:http://www.cnblogs.com/pctzhang/archive/2010/07/06/1772120.html
?
方法二:
在MSSQL SERVER2005后,提供了链接服务器。利用它可以对异类数据库和MSSQL进行交互,使用起来非常方便。操作步骤如下:
1:创建MYSQL数据库的ODBC数据源,名称为CPC,选择一个默认的数据库。
如何配置ODBC数据源请看这里:
http://wenku.baidu.com/view/552afb6aaf1ffc4ffe47ac11.html
2:SQL代码如下
?
?
-- 创建链接服务器
EXEC sp_addlinkedserver?@server?='MySQLTest',?@srvproduct'MySQL'@provider?'MSDASQL'@datasrc?'cpc' GO
-- 创建或更新 SQL Server 本地实例上的登录名与远程服务 器中安全帐户之间的映射。
-- 下面这个也必须加,否则使用sa登陆mssql时无法访问链接服务器。 EXEC sp_addlinkedsrvlogin @rmtsrvname@useself'false'@locallogin'sa'@rmtuser'cpc'@rmtpassword'123' go --参数解释:@rmtsrvname 链接服务器名
-- @locallogin本地登陆账号,@rmtuser mysql (远程)链接服务器用户名,@rmtpassword (远程)链接服务器密码 -- 把SQL SERVER里的TT表的记录插入到MYSQL的T1表里,这这里也可以插入具体值。
?INSERT?OPENQUERY(MySQLTest'select * from t1')?select?*?from?TT; ?values?(99); ? ?-- 对T1表进行UPDATE操作
?UPDATE?OPENQUERY'select value from t1'set?value=value?+100; ? ?-- 对T1表进行DELETE 操作,不明白为什么一次只能删除一条,
?DELETE?OPENQUERY?'SELECT * FROM t1 WHERE hour = 99'; ??'SELECT * FROM t1 '; ? ?-- DELETE OPENQUERY (MySQLTest,'SELECT * FROM t1 WHERE hour > 2'); --这样是不行的,报错
? ?-- 对T1表进行查询操作
?from?openquery; ? ?-- 把MYSQL的T1表的记录写回到MSSQL
?insert?into?TT?; go
-- 释放掉链接服务
EXEC sp_dropserver?'droplogins' go ?
http://de.cel.blog.163.com/blog/static/51451236201133011422724/
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|